c#不能转义正则字符串中的引号

本文关键字:字符串 不能 转义 | 更新日期: 2023-09-27 18:03:00

我正在尝试使用regex匹配引号,但我无法在@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!

c#不能转义正则字符串中的引号

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

Regex.Replace(str, @"['d-'""]", string.Empty);

@令牌抑制'转义。如果您删除@标记,它将按预期工作,但您必须转义第一个反斜杠,即"[''d-''"]"

我刚刚试了一下这段代码

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

,这在控制台屏幕上产生"Ciao"。因此,正如DLeh刚才所说,您应该使用""转义引号