regex 正则表达式来检测特定单词

qxgroojn  于 2023-03-20  发布在  其他
关注(0)|答案(2)|浏览(153)

如何匹配不属于某个单词的特定单词?
例如,我希望正则表达式检测三个“on”,但不检测“long”中的一个。

日abc月**日

当我使用(?: |^)the|on|of(?: |$)时,它也会检测到“long”中的“on”,这不是我要找的。

bnlyeluc

bnlyeluc1#

这里有两件事要提一下:

  • 当您要限制一组单词的上下文时,请始终将它们分组
  • 要匹配整个单词,需要使用word boundaries, \b

所以你需要

\b(?:the|on|of)\b

参见this regex demo

在图中可以看到,单词边界现在属于使用|运算符列出的所有替换项,因为它们都用non-capturing group括起来了。

0mkxixxg

0mkxixxg2#

您可以使用以下正则表达式:

/\bon\b/

\b标记匹配任何单词边界,它们是空格、字符串开头还是结尾等。
所以这很简单:您需要单词on,它被单词边界包围。

相关问题