Regex on / ^ Subject и / ^ From одновременно - PullRequest
0 голосов
/ 06 июня 2019

Где ошибка в этом регулярном выражении и как я могу сопоставить два условия одновременно для предметной области и из поля?Тема - «пустая строка» (в поле темы ничего не написано), и письмо приходит с «assistant@mail.com», затем принимайте почту:

/^From:(.*)assistant\@gmail\.com|^Subject:\s*$/ OK

Буду очень благодарен за любую помощь по адресувсе.

Ответы [ 3 ]

0 голосов
/ 06 июня 2019

Может быть, вы поняли из этого.

^From:\s*assistant\@gmail\.com|^Subject:\s*$

Демо :: https://regex101.com/r/zDzbyX/1

0 голосов
/ 06 июня 2019

Если у вас несколько строк, одним из вариантов может быть сначала совпадение с частью From, а затем совпадение с 0+ линиями между ними, а затем совпадение с частью Subject.

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

^From:.*?assistant@gmail\.com.*(?:\n.*)*\nSubject:\s*$

Это будет соответствовать:

  • ^From:.*? Совпадение From: с начала строки, за которым следует любой символ, не жадный
  • assistant@gmail\.com Электронный адрес матча
  • .* Соответствует 0+ раз любому символу, кроме новой строки
  • (?:\n.*) Совпадение 0+ раз новой строки и всей строки до конца строки
  • \nSubject:\s*$ Соответствует символу новой строки, Subject, 0+ умноженному на пробел и устанавливает конец строки

Regen demo

наоборот:

^Subject:\s*(?:\n.*)*\nFrom:.*?assistant@gmail\.com

Regex demo

0 голосов
/ 06 июня 2019

Я сделал предположение о вашем тексте и о том, как он выложен.

Это работает?

/(From:\sassistant@gmail\.com)|(Subject:.*)$/

Я фиксирую электронную почту в одной группе или сопоставляю пустую тему в другой группе, предполагая, что соответствующий текст имеет длину одной строки.

Смотрите здесь для матча: https://regex101.com/r/CP0jfc/2/

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