我想搜索一个字但排除包含更大字词的匹配项,例如我想搜索“dog”但排除包含“doggie”的匹配。
所以“大狗”和“大狗”应该匹配而不是“大狗”
以下内容不应与
匹配big doggie
bigdoggie
doggiebig
bigdoggiebad
以下应该匹配
bigdog
dogbig
baddogbig
我能想到的最好的是这个,但它不起作用:
(?!doggie)dog
答案 0 :(得分:4)
使用负面展望:
dog(?!gie)
请参阅live demo使用您的所有示例,例如
big dog (matches)
big doggy (matches)
big doggie (no match)
顺便提一下,你的尝试也是有效的(它只会在表达式中轻微重复" dog"。
答案 1 :(得分:0)
使用单词边界字符(\b
):
\bdog\b