Regex 用于检测特定单词的正则表达式

Regex 用于检测特定单词的正则表达式,regex,Regex,如何匹配不属于单词的特定单词 例如,我希望正则表达式检测三个“on”,但不检测“long”中的一个 onlongonabcon 当我使用((?:| ^)of(?:|$)的| on |时,它也会检测“long”中的“on”,这不是我要寻找的 谢谢您可以使用此正则表达式: /\bon\b/ \b标记匹配任何单词边界,它们是空格、字符串开始还是结束,等等 所以这很简单:你需要在上用这个词,用词的边界围起来。这里有两件事要提: 如果要限制一组单词的上下文,请始终将它们分组 要匹配整个单词,您需要使用

如何匹配不属于单词的特定单词

例如,我希望正则表达式检测三个“on”,但不检测“long”中的一个

onlongonabcon

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


谢谢

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

/\bon\b/
\b
标记匹配任何单词边界,它们是空格、字符串开始还是结束,等等


所以这很简单:你需要在上用
这个词,用词的边界围起来。

这里有两件事要提:

  • 如果要限制一组单词的上下文,请始终将它们分组
  • 要匹配整个单词,您需要使用
所以,你需要

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


您可以在图表上看到,单词边界现在属于用
运算符列出的所有可选项,因为它们都用一个

括起来。

使用这个正则表达式:
/\Won\W/
。基本上,你想要一个非单词字符“on”,然后是一个非单词字符谢谢。但是,这并没有抓住第一个和最后一个“on”。我的错,这一个应该能起作用:
/\bon\b/
这个
\b
用于抓住单词边界谢谢解释,它有意义:)完成。:)再次感谢你的帮助。我能问你另一个与此相关的问题吗?我正在尝试将几个匹配的单词分组到一个命名的组中。例如,给定of
上的
on lol,我正在寻找on
上的组A=
和of
上的组B=
。我尝试了类似于
(P(\b(?:the | on | of)\b)*)lol(P(\b(?:the | on | of)\b)*)
的方法,但它不起作用-/@Ted您应该匹配单词之间的空格字符,请参阅。