c # строка, которая должна содержать кавычку " - PullRequest
4 голосов
/ 20 декабря 2010
string aniPattern=@"(?si:<option value=\\\"(?<year>.*?)\\)";

Это ломается, потому что "посередине. Но мне это нужно, потому что я использую его в регулярном выражении.

Я пытался использовать string aniPattern="(?si:<option value=\\\"(?<year>.*?)\\\\)"; (без @), но это недопустимое регулярное выражение.

Ответы [ 3 ]

12 голосов
/ 20 декабря 2010

важно - не совсем понятно, что вы хотите сопоставить;Я ответил на предпосылке, что только " является проблемой - но смотрите также Ответ Майка Карона , в котором предполагается, что все неверно экранировано.

С буквальным строковым литералом (т. Е. @"..."), " экранируется до "" - так ваша строка становится:

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

С регулярным строковый литерал (без начального @), вам понадобится намного хуже:

string aniPattern="(?si:<option value=\\\\\\\"(?<year>.*?)\\\\)";
8 голосов
/ 20 декабря 2010
string aniPattern=@"(?si:<option value=""(?<year>.*?)\)";

Для @ escape-строк вы удваиваете кавычки, чтобы избежать их, поскольку обратный слеш не используется.

2 голосов
/ 20 декабря 2010

Используйте две двойные кавычки рядом друг с другом, например: ""

...