我需要一个正则表达式来匹配一个确切的单词。
例如:
有一个字符串"draft guidance allerg Excellence"
,我想搜索allerg
然后我写了\ballerg\b
. 它给了我完全匹配。但是当我传递字符串时"draft guidance 12=allerg Excellence"
它也返回true,但这是错误的。
我需要哪个正则表达式只匹配确切的单词?
\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
)
如果我正确理解了这个问题,你想匹配一个单词 "allerg" 。一个单词用空白字符括起来,并且“=allerg”具有您不想匹配的“=”字符。
要匹配单词“allerg”,您可以使用以下正则表达式:
\s+allerg\s+