首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配精确的单词,如果之前有特殊符号则不匹配

匹配精确的单词,如果之前有特殊符号则不匹配
EN

Stack Overflow用户
提问于 2018-01-17 22:58:19
回答 2查看 71关注 0票数 2

我有一个简单的正则表达式,可以精确地匹配字符串中的子字符串:

代码语言:javascript
复制
"\bXXX\b"

这工作很酷,除了1个案例..如果XXX前有特殊符号,则与子字符串匹配:

代码语言:javascript
复制
This is ABC #XXX DEF

如何调整正则表达式,使其与#XXX不匹配?

EN

回答 2

Stack Overflow用户

发布于 2018-01-17 23:04:47

如果您只想允许使用空格作为分隔符,我会选择

代码语言:javascript
复制
(^|(?<= ))XXX($|(?= ))

解释:

行首(

  • (^|(?<= )):)或行尾空格( ((?<= )).
  • ($|(?= )):((?= )).

)上的“正后视”(

  • (^|(?<= )):((?<= )).
  • ($|(?= )):)或空格((?= )).

上的“正后视”(Positive Lookahead)

后视/前视表达式确保空间本身不是匹配的一部分。

票数 4
EN

Stack Overflow用户

发布于 2018-01-18 00:36:45

最好的方法是使用传统的空白或空格边界。

不涉及任何更改,而且速度更快。

(?<!\S)XXX(?!\S)

这也将匹配字符串开头或结尾的XXX。

此外,也可以将其设置为空间边界。

(?<![^ ])XXX(?![^ ])

这也将匹配字符串开头或结尾的XXX,但强制

空格字符在任何一边或另一边,如果不是。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48303986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档