我有一个正则表达式来转义搜索字符串中的所有特殊字符.这很好用,但我似乎无法使用单词边界.例如,与大海捞针
add +
Run Code Online (Sandbox Code Playgroud)
要么
add (+)
Run Code Online (Sandbox Code Playgroud)
和针
+
Run Code Online (Sandbox Code Playgroud)
正则表达式/\+/gi
匹配"+".但是正则表达式/\b\+/gi
没有.关于如何使这项工作的任何想法?
运用
add (plus)
Run Code Online (Sandbox Code Playgroud)
作为大海捞针和/\bplus/gi
正则表达式,它匹配得很好.我只是无法弄清楚为什么逃脱的角色有问题.
\b
是一个零宽度断言:它不消耗任何字符,它只是断言某个条件在给定位置成立.单词边界断言位置前面有一个单词字符,后面没有一个单词,或后跟一个单词字符,前面没有一个字符.("单词字符"是字母,数字或下划线.)在您的字符串中:
add +
Run Code Online (Sandbox Code Playgroud)
...开头有一个单词边界,因为a
前面没有单词字符,而后面有一个单词边界,d
因为它后面没有单词字符.在\b
你的正则表达式(/\b\+/
)正试图空间之间的匹配+
,它不起作用,因为这些都不是一个单词字符.