【发布时间】:2019-08-21 00:37:20
【问题描述】:
我有一个很长的文本,我想在这个文本中找到一长串单词。
现在,要搜索这些词,我检查“正则表达式”,然后找到“word1|word2|word3|word4...” 这样做的问题是,如果其中一个词是“吃”,那么每个包含“吃”的词也会被突出显示。我怎样才能防止这种情况发生?
【问题讨论】:
标签: regex
我有一个很长的文本,我想在这个文本中找到一长串单词。
现在,要搜索这些词,我检查“正则表达式”,然后找到“word1|word2|word3|word4...” 这样做的问题是,如果其中一个词是“吃”,那么每个包含“吃”的词也会被突出显示。我怎样才能防止这种情况发生?
【问题讨论】:
标签: regex
您可以使用单词锚来匹配单词的开头和结尾。 (假设您使用的是支持 PCRE 的东西。)
/\b(word1|word2|word3...)\b/
\b 位匹配“字边界”。来自 Perl 的正则表达式手册页 (man perlre)
单词边界(“\b”)是两个字符之间的一个点,它的一侧有一个“\w”,另一侧有一个“\W”(以任意顺序),计算字符串开头和结尾的虚构字符与“\W”匹配。
【讨论】:
grep?这是在程序内部吗?什么语言?您可以访问哪些库?
"\\b(word1|word2)\\b"。同样,这取决于您使用的工具/语言。
/) 从前面和后面去掉。只是玩它。 (正斜杠通常用于分隔许多语言中的正则表达式——可能不是您的编辑器使用的)