c#必须包含引号的字符串“

时间:2010-12-20 19:56:55

标签: c# regex quote

string aniPattern=@"(?si:<option value=\\\"(?<year>.*?)\\)";

这打破了因为“在中间。但我需要它,因为我在正则表达式中使用它。

我尝试使用string aniPattern="(?si:<option value=\\\"(?<year>.*?)\\\\)";(没有@),但它不是有效的正则表达式。

3 个答案:

答案 0 :(得分:12)

重要 - 您想要匹配的内容并不完全清楚;我已经回答了 "是一个问题的前提 - 但另请参阅Mike Caron's answer,其中假设所有内容未正确转义。< / p>

使用逐字字符串文字(即@"..."),"将转义为"" - 因此您的字符串变为:

string aniPattern=@"(?si:<option value=\\\""(?<year>.*?)\\)";

使用常规字符串文字(不带前导@),您需要更糟糕的事情:

string aniPattern="(?si:<option value=\\\\\\\"(?<year>.*?)\\\\)";

答案 1 :(得分:8)

string aniPattern=@"(?si:<option value=""(?<year>.*?)\)";

对于@转义字符串,您将引号加倍以转义它,因为不使用反斜杠。

答案 2 :(得分:2)

使用两个双引号,如下所示:""