我有以下代码.这个想法是检测整个单词.
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",前面是表达式的开头或空格,后跟表达式的结尾或空格.
| 归档时间: |
|
| 查看次数: |
7916 次 |
| 最近记录: |