匹配在单词边界上包含特殊字符的变量字符串的正则表达式

Regex that matches a variable String containing special characters on word boundaries

我有一个变量字符串,当字符串在单词边界处作为一个整体匹配时,应该将其替换。 变量 String 可能在任何位置包含任何特殊字符。

我使用这个正则表达式取得了一些成功:

\b\QExample String to replace\E

或在 Kotlin 中实现:

string.replace("""\b${Regex.escape(toReplace)}""".toRegex(), replacement)

但是,当 toReplace 类似于 [template] Example String to replace 时,这不起作用。

我猜这是因为 [ 不被视为“单词”,因此与 \b 不匹配。 有没有办法替换此字符串并尽可能灵活地处理输入?

您可以使用空白边界:

(?<!\S)\[template\] Example String to replace

完整的 Kotlin 代码:

string.replace("""(?<!\S)${Regex.escape(toReplace)}""".toRegex(), replacement)