我有一个简单的正则表达式,可以精确地匹配字符串中的子字符串:
"\bXXX\b"这工作很酷,除了1个案例..如果XXX前有特殊符号,则与子字符串匹配:
This is ABC #XXX DEF如何调整正则表达式,使其与#XXX不匹配?
发布于 2018-01-17 23:04:47
如果您只想允许使用空格作为分隔符,我会选择
(^|(?<= ))XXX($|(?= ))解释:
行首(
(^|(?<= )):)或行尾空格( ((?<= )).($|(?= )):((?= )).)上的“正后视”(
(^|(?<= )):((?<= )).($|(?= )):)或空格((?= )).上的“正后视”(Positive Lookahead)
后视/前视表达式确保空间本身不是匹配的一部分。
发布于 2018-01-18 00:36:45
最好的方法是使用传统的空白或空格边界。
不涉及任何更改,而且速度更快。
(?<!\S)XXX(?!\S)
这也将匹配字符串开头或结尾的XXX。
此外,也可以将其设置为空间边界。
(?<![^ ])XXX(?![^ ])
这也将匹配字符串开头或结尾的XXX,但强制
空格字符在任何一边或另一边,如果不是。
https://stackoverflow.com/questions/48303986
复制相似问题