Если у вас несколько строк, одним из вариантов может быть сначала совпадение с частью 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