正则表达式匹配单词数组,不包括在收缩中找到的单词

时间:2015-10-29 01:53:39

标签: javascript regex

说我有一个单词数组,例如:(hi | ll | this | that | etc)我希望在以下文本中找到它:

  

您好,我 ll 匹配 ll

我正在使用:\\b(hi|ll|this|that|etc)\\b

但我想只匹配整个单词,不包括在收缩中找到的单词。基本上将撇号视为另一个“单词分隔符”。在这种情况下,它不应与“我将”中的“ll”匹配。

想法?

2 个答案:

答案 0 :(得分:2)

除了\b之外,使用撇号开始和结束匹配:

(?:\b|')(hi|ll|this|that|etc)(?:\b|')

(?:...)表示非捕获组。 Stub on Regex101

答案 1 :(得分:2)

如果您想要匹配的话,可以试试:

(?:^|(?=[^']).\b)(hi|ll|th(?:is|at)|etc)\b

DEMO

并获取第1组的字词。但\b仍然允许匹配:-this@ll等片段。我不知道它是否是理想的结果。