C # Regex; Двойная цитата - PullRequest
1 голос
/ 02 мая 2011

Я немного озадачен здесь. У меня был этот метод, который до недавнего времени работал нормально:

internal static bool IsZplFormat(string szString)
{
    var regex = new Regex(@"\^XA.*\^XZ\\r\\n");
    return regex.IsMatch(szString);
}

Это бы хорошо работало, учитывая следующую строку (взятую из моего модульного теста):

const string zplSample = "^XA blah blah blah ^XZ\r\n";

То, что сейчас происходит, это то, что я получаю что-то вроде этого:

const string zplSample = "^XA blah blah \"blah ^XZ\r\n";

А теперь мое регулярное выражение больше не соответствует.

Я думал, что .* должен совпадать со всеми символами, но похоже, что он запутался в этой двойной кавычке. Любые идеи о том, как я могу заставить это работать снова?

1 Ответ

1 голос
/ 02 мая 2011

Тестирование здесь ...

string zplSample  = "^XA blah blah blah ^XZ\r\n";
string zplSample1 = "^XA blah blah \"blah ^XZ\r\n";

Console.WriteLine(new Regex(@"\^XA.*\^XZ\r\n").IsMatch(zplSample));
Console.WriteLine(new Regex(@"\^XA.*\^XZ\r\n").IsMatch(zplSample1));

Console.ReadKey();

Вывод

True
True

Что я изменил?Шаблон регулярного выражения @"\^XA.*\^XZ\r\n".(От двух backslashes до одного) (\\r\\n)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...