Tom*_*ana 6 .net c# regex string
我已经阅读过使用正则表达式(在.NET中)匹配字符串内的单词,我可以\b在正则表达式中使用单词boundary specifier().但是,这些调用都不会导致任何匹配
Regex.Match("INSERT INTO TEST(Col1,Col2) VALUES(@p1,@p2)", @"\b@p1\b");
Regex.Match("INSERT INTO TEST(Col1,Col2) VALUES(@p1,@p2)", @"\bINSERT\b");
Run Code Online (Sandbox Code Playgroud)
有什么我做错了吗?
编辑:第二个已经工作;)
Mar*_*ers 10
更新:正如另一个答案所指出的,@不是单词字符,因此@空间之间没有单词边界.作为一种解决方法,您可以改为使用负面的lookbehind:
@"(?<!\w)@p1\b"
Run Code Online (Sandbox Code Playgroud)
原始答案:您需要@在正则表达式前面:
@"\b@p1\b"
Run Code Online (Sandbox Code Playgroud)
如果没有这个,字符串"\ b"将被解释为退格(字符8),而不是正则表达式字边界.在MSDN上有关于@ -quoted字符串文字的更多信息.
不使用@ -quoted字符串文字的另一种方法是转义反斜杠:
"\\b@p1\\b"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1227 次 |
| 最近记录: |