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