正则表达式和冒号(:)

Liv*_* M. 6 c# regex

我有以下代码.这个想法是检测整个单词.

bool contains = Regex.IsMatch("Hello1 Hello2", @"\bHello\b"); // yields false
bool contains = Regex.IsMatch("Hello Hello2", @"\bHello\b"); // yields true
bool contains = Regex.IsMatch("Hello: Hello2", @"\bHello\b"); **// yields true, but should yield false**
Run Code Online (Sandbox Code Playgroud)

似乎正则表达式忽略了冒号.如何修改代码,使最后一行返回false?

Fáb*_*sta 12

\b意思是"字边界".:不是任何单词的一部分,所以表达式是真的.

也许你想要一个像这样的表达式:

(^|\s)Hello(\s|$)
Run Code Online (Sandbox Code Playgroud)

这意味着:字符串"Hello",前面是表达式的开头或空格,后跟表达式的结尾或空格.