Я пытаюсь написать регуляцию, которая вернет совпадение нескольких строк из файла журнала. Используя пример ниже - я хочу сопоставить всю «транзакцию», которая начинается и заканчивается тем же текстом, что и все другие транзакции в журнале (Start и End). Однако между этими строками существует пользовательский идентификатор - в данном случае адрес электронной почты, который будет отличать одну транзакцию от другой. < /P>
Start of a transaction.
random line 1.
random line 2.
email1@gmail.com
End of a transaction.
Start of a transaction.
random line 1.
random line 2.
email1@yahoo.com
random line 3.
End of a transaction.
< /code>
Вот что я начинаю с: < /p>
^Start(.*?)\n(((.*?)(email1\@gmail\.com)(.*?)|(.*?))\n){1,}End (.*?)\n
< /code>
По сути, - я хочу сказать: начать с «Start» - и сопоставить все строки до линии «конечного», но вернуть совпадение только в том случае, если одна из строк содержит конкретный адрес электронной почты. Линии между ними - это совпадение для электронной почты. Также-приложение является PowerShell и будет использовать шаблон избранных строк, если это важно.
Подробнее здесь: https://stackoverflow.com/questions/371 ... -delimiter