我需要一个正则表达式来匹配一个确切的单词。
例如:
有一个字符串"draft guidance allerg Excellence"
,我想搜索allerg
,然后我写了\ballerg\b
。它给了我完全匹配。但是当我将字符串作为"draft guidance 12=allerg Excellence"
传递时,它也会返回true,但这是错误的。
我需要哪个正则表达式才能匹配精确的单词?
答案 0 :(得分:6)
\b
边界通常会处理这种情况,即使在"draft guidance 12=allerg Excellence"
的情况下也是如此。但是,你说=
是这个词的一部分(在普通英语中,情况并非如此)。
我假设那个“整个单词”,你的意思是一个被空格或正常句子标点符号包围的单词。在这种情况下,如下所示的正则表达式应该起作用:
(?:^|[\s\.;\?\!,])allerg(?:$|[\s\.;\?\!,])
显然,您可以根据需要添加或删除字符。
正则表达式解释:
(?: # non-matching group
^ # beginning of string
| [\s\.;\?\!,] # OR a space, period, and other misc. punctuation
)
allerg # string to match
(?: # non-matching group
$ # end of string
| [\s\.;\?\!,] # OR a space, period, and other misc. punctuation
)
答案 1 :(得分:-1)
如果我正确理解了这个问题,你想要匹配一个单词“allerg”。一个单词用空格字符括起来,“= allerg”有“=”字符,你不想匹配。
要匹配“allerg”这个词,您可以使用以下正则表达式:
\s+allerg\s+