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

これは途中で " が壊れます。しかし、正規表現で使用するため、これが必要です。

(@ なしで)使用しようとしましstring aniPattern="(?si:<option value=\\\"(?<year>.*?)\\\\)";たが、有効な正規表現ではありません。

4

3 に答える 3

12

重要- 何を一致させたいのかが完全に明確ではありません。のみが問題であるという前提で答えましたが、すべてが間違ってエスケープされていると仮定するMike Caronの答え"も参照してください。

逐語的な文字列リテラル (つまり@"...") を使用すると、"にエスケープされる""ため、文字列は次のようになります。

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

通常の文字列リテラル (先頭の なし@) では、さらに悪いことが必要になります。

string aniPattern="(?si:<option value=\\\\\\\"(?<year>.*?)\\\\)";
于 2010-12-20T19:58:45.990 に答える
8
string aniPattern=@"(?si:<option value=""(?<year>.*?)\)";

@ エスケープされた文字列の場合、バックスラッシュが使用されていないため、引用符を二重にしてエスケープします。

于 2010-12-20T19:59:49.270 に答える
2

次のように、2 つの二重引用符を続けて使用します。""

于 2010-12-20T19:59:16.513 に答える