当前位置: 代码迷 >> JavaScript >> 正则表达式\\ b匹配具有特殊字符的字符串
  详细解决方案

正则表达式\\ b匹配具有特殊字符的字符串

热度:96   发布时间:2023-06-05 10:29:53.0

\\ b表达式出现问题,不应与带有特殊字符的单词匹配。

我有这个正则表达式

\bstr=flavor\b

我正在阅读有关转义特殊字符的信息,但不确定将其放在何处。

我的目标是使正则表达式不匹配以下字符串

str=flavor%20sweet --> Shouldn't match (1) 
str=flavorsweet --> shouldn't match (2)
declare str=flavor --> should match (3)

2和3已经可以使用当前的正则表达式,但是1存在问题,因为它仍然与应考虑%匹配

我应该如何更改我的正则表达式以使其将%视为字符?

如果您的正则表达式引擎接受否定的前瞻,则可以使用:

\bstr=flavor\b(?!%)

强制紧随您的str=flavor之后的字符不是% char。

演示: :

另外,您可以在= char周围添加[ \\t]*以接受str = flavor 。

这给出了正则表达式:( \\bstr[ \\t]*=[ \\t]*flavor\\b(?!%) )

对于旧版JS您可以使用:

\b(str=flavor)\b(?:[^%]|$)

演示: : ,如有必要,您可以在此处通过反向引用进行反向匹配。 另外,如果您不想在%上方考虑其他字符,则可以将它们添加到字符范围异常定义[^]

  相关解决方案