0

我需要一个正则表达式来匹配一个确切的单词。

例如:

有一个字符串"draft guidance allerg Excellence",我想搜索allerg然后我写了\ballerg\b. 它给了我完全匹配。但是当我传递字符串时"draft guidance 12=allerg Excellence"它也返回true,但这是错误的。

我需要哪个正则表达式只匹配确切的单词?

4

2 回答 2

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
)
于 2012-07-26T04:56:33.483 回答
-1

如果我正确理解了这个问题,你想匹配一个单词 "allerg" 。一个单词用空白字符括起来,并且“=allerg”具有您不想匹配的“=”字符。

要匹配单词“allerg”,您可以使用以下正则表达式:

\s+allerg\s+
于 2012-07-26T04:55:14.643 回答