C#无法转义正则表达式字符串中的引号

时间:2015-07-16 17:44:15

标签: c#

我正在尝试使用正则表达式匹配引号,但我无法在@string中逃脱它们 - 我收到错误:

output = Regex.Replace(str, @"[\d-']", string.Empty);    // valid

output = Regex.Replace(str, @"[\d-'\"]", string.Empty);  // not valid!

这个也行不通:

string str = "[\d-'\"]" // bad compile constant value!

3 个答案:

答案 0 :(得分:6)

要转义逐字字符串中的mapItemList,请使用"

""

答案 1 :(得分:1)

@令牌会阻止\转义。如果您移除@令牌,它将按预期工作,但您必须转义第一个反斜杠,即"[\\d-'\"]"

答案 2 :(得分:0)

我刚试过这段代码

output = Regex.Replace("Ciao'\"", @"[\d-'""]", string.Empty);
Console.Writeln(output);

这就产生了#C;" Ciao"在控制台屏幕上。所以,正如DLeh所说,你应该使用""来逃避引用。