【问题标题】:Match [word] but not [word]apostrophe Regex匹配 [word] 但不匹配 [word] 撇号 Regex
【发布时间】:2012-07-05 09:20:06
【问题描述】:

我的正则表达式是通过在 javscript 中使用此代码动态构造的:

var regExp = new RegExp("\\b" + $("#value").val() + "\\b", "ig");

即正则表达式将是一个简单的\bbrother\b/ig,问题是它也匹配诸如

之类的词
don in don't
sister in sister's

只有当它是一个完整的单词时它才应该匹配单词,即

The don came late   - match
don't do that       - no match
she is my sister    - match
my sister's wedding - no match

编辑:感谢您的回答。如果正则表达式非常大,如 \bbrother|sister|car|truck.......\b 到 6500 或字。

【问题讨论】:

  • 不匹配带引号的单词还是匹配包括引号在内的整个字符串?那么它将匹配don't,例如?
  • @npinti : 编辑问题
  • 哦,您的编辑稍微改变了我的答案。给我一点时间。编辑:取消那个,我在想一个不同的性能问题。我的回答应该适合你正在做的事情。

标签: javascript regex


【解决方案1】:

有几种方法可以做到这一点。我会推荐一个前向否定的前瞻。

\bbrother\b(?!')

构造(?!something) 确保something 不跟随匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多