Выберите для поиска из необязательного слова (регулярное выражение) - PullRequest
0 голосов
/ 11 декабря 2019

Я получаю электронные письма, которые могут сильно различаться по тексту.

Они могут быть такими:

Example Product

1,00

50,38

50,38

In Bearbeitung

Versendet: Dieser
 Artikel wurde soeben versendet.

In Bearbeitung: Dieser
 Artikel befindet sich in Bearbeitung.

Herr
Matthew Example
Example Street 19
3333 London
England

Please find
enclosed your invoice in a pdf document.

или такими:

Example Product

1,00

50,38

50,38

Matthew Example
Example Street 19
3333 London
England

Please find
enclosed your invoice in a pdf document.

У меня есть решение, которое отлично работает для второго письма:

^\d{1,9},\d{1,2}\s*\n((?:(?!\d+,\d+$).*\n)*)Please find

Причина, по которой шаблон не соответствует первому сообщению электронной почты, заключается в том, что номер предшествует "в Bearbeitung". Как мне это решить? Я хочу записать адрес для каждого письма, включая все, что касается получателя.

1 Ответ

0 голосов
/ 11 декабря 2019

Попробуйте это:

((?:^.+$\n)+)\nPlease find

Вот тест

Как это работает? Я заметил, что адрес окружен дополнительными пустыми строками сверху и снизу, за которыми следует «Пожалуйста, найдите» , поэтому, если вы можете сохранить этот формат, этот метод может работать.

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