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

Rya*_*yan 4 c# regex quote

string aniPattern=@"(?si:<option value=\\\"(?<year>.*?)\\)";
Run Code Online (Sandbox Code Playgroud)

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

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

Mar*_*ell 12

重要的是 - 你想要匹配的并不完全清楚; 我已经回答了前提,只有"是一个问题 - 但也请参阅Mike Caron的答案,该答案假设所有内容都被错误地转义.

使用逐字字符串文字(即@"..."),"转义为""- 所以你的字符串变为:

string aniPattern=@"(?si:<option value=\\\""(?<year>.*?)\\)";
Run Code Online (Sandbox Code Playgroud)

使用常规字符串文字(没有前导@),你需要更糟糕的是:

string aniPattern="(?si:<option value=\\\\\\\"(?<year>.*?)\\\\)";
Run Code Online (Sandbox Code Playgroud)

  • 我有一种感觉,报价之前的斜线专门用于处理报价.我怀疑他想匹配像`<option value ="1995"`这样的东西 (3认同)

Mik*_*ron 8

string aniPattern=@"(?si:<option value=""(?<year>.*?)\)";
Run Code Online (Sandbox Code Playgroud)

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