Regex 正则表达式:从大量单词列表中查找,只查找整个单词

Regex 正则表达式:从大量单词列表中查找,只查找整个单词,regex,Regex,我有一篇很长的文章,还有一长串我想在这篇文章中找到的单词 现在,为了搜索这些单词,我检查“正则表达式”,然后找到“word1 | word2 | word3 | word4…” 问题是,如果其中一个单词是“eat”,那么包含“eat”的每个单词也会突出显示。如何防止这种情况发生?您可以使用单词锚来匹配单词的开头和结尾。(假设您使用的是支持PCRE的设备。) \b位在“字边界”处匹配。从Perl的正则表达式手册页(manperlre) 单词边界(“\b”)是两个字符之间的一个点,这两个字符的一侧有

我有一篇很长的文章,还有一长串我想在这篇文章中找到的单词

现在,为了搜索这些单词,我检查“正则表达式”,然后找到“word1 | word2 | word3 | word4…”
问题是,如果其中一个单词是“eat”,那么包含“eat”的每个单词也会突出显示。如何防止这种情况发生?

您可以使用单词锚来匹配单词的开头和结尾。(假设您使用的是支持PCRE的设备。)

\b
位在“字边界”处匹配。从Perl的正则表达式手册页(
manperlre

单词边界(“\b”)是两个字符之间的一个点,这两个字符的一侧有一个“\w”,另一侧有一个“\w”(按任意顺序),将字符串开头和结尾的假想字符计算为匹配的“\w”


可能重复我得到的错误“Bad regex:error while compiled regular expression”(不管怎样,现在发生的是什么都找不到,而结果肯定会显示出来。)您使用的是什么工具<代码>grep?这是程序内部的吗?什么语言?您可以访问哪些库?如果正则表达式位于字符串中,您可能还希望尝试转义反斜杠:
“\\b(word1 | word2)\\b”
。同样,这取决于您使用的工具/语言。我在windows上使用notepad++,在Linux上使用geany。这两个都不起作用。试着去掉前面和后面的正斜杠(
/
)。玩吧。(正斜杠通常用于分隔许多语言中的正则表达式,但您的编辑器可能不使用正斜杠)
/\b(word1|word2|word3...)\b/