我有这个表情
\b[A-Za-z]+\b
如果我给abc@de mnop
,它匹配abc
, de
and mnop
,但我希望它只匹配mnop
。我怎样才能做到这一点?
\b
是单词边界。
所以,\b
类似于[^a-zA-Z0-9_]
ie\b
会检查除了word
您可以改用此正则表达式
(?<=\s|^)[a-zA-Z]+(?=\s|$)
-------- --------- ------
| | |->match only if the pattern is followed by a space(\s) or end of string/line($)
| |->pattern
|->match only if the pattern is preceded by space(\s) or start of string\line(^)
\b
意味着(?:(?<!\w)(?=\w)|(?<=\w)(?!\w))
。这将匹配字母和之间的位置@
。
你可以写:
(?<!\S)[A-Za-z]+(?!\S)
(?!\S)
相当于(?=\s|$)
。
Regex word boundary doen't match(\b) matching and whitespace
样品中只有白色是
abc@de mnop
^
尝试\s([A-Za-z]+)\b
\s
锚点在哪里,根本不是边界