C # Regex с нетерпением - PullRequest
       3

C # Regex с нетерпением

0 голосов
/ 22 декабря 2018

Я пытаюсь проанализировать маркер границы в сообщениях электронной почты, используя RegEx в C #.

Данные имеют один из форматов:

 boundary=\"--==_mimepart_5c1ceb26ac136_211222489141168988\";
 boundary=\"----------=_1545338372-18873-1534\"

, используя:

string pattern = "(-+.+)";
Regex regex = new Regex(pattern);
string boundary = (from x in email where x.Contains("boundary=\"") select x).FirstOrDefault();
MatchCollection matches = regex.Matches(boundary);

Я получаю результат:

--==_mimepart_5c1ceb26ac136_211222489141168988\";

Если изменить шаблон на:

string pattern = "(-+.+)(?=\\\\)";

Я получу ноль совпадений.Я также пробовал "(- +. +) (\\)" и все еще получаю ноль совпадений.Используя Regexer и Regex Storm, шаблон захватывает именно то, что мне нужно.Может кто-нибудь помочь мне разобраться, почему это не удается?

1 Ответ

0 голосов
/ 22 декабря 2018

Вы можете сопоставить нужную строку с

var pattern = "-[^\"]+";

Она будет соответствовать -, а затем 1 или более символов, отличных от ".

См. .NET regex demo

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