此代码不起作用,但它适用于其他表达式,例如(?:[A-Za-z][A-Za-z0-9_]*)
。
下面的表达式在正则表达式测试程序中正常工作,但它不会在此代码中用Hello替换Hello:
string test = "int Hello := 2 ;";
string pattern = "\b(?!int|bool)(?:[A-Za-z][A-Za-z0-9_]*)\b";
string replacement = "Id";
Regex rgx = new Regex(pattern);
string newline = rgx.Replace(test, replacement);
答案 0 :(得分:4)
您应该从backslashes
开始@
或使用string
并将其设为verbatim string
。 \b
C#
具有特殊含义,backspace
,请参阅文档:Escape Sequences
string pattern = @"\b(?!int|bool)(?:[A-Za-z][A-Za-z0-9_]*)\b";