Regex для извлечения нескольких совпадающих строк - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь извлечь имя хоста и адрес электронной почты из текстового файла с помощью регулярных выражений.Эти поля не являются обязательными.Возможно, что в некоторых случаях доступно только одно поле.

Например: если адрес электронной почты недоступен, следует извлечь только имя хоста и наоборот.

Я получил почти работающее регулярное выражение.Просто не работает для одного случая.см. регулярное выражение в приведенной ниже ссылке.

regex: ^.*(MAIL:(?<EMAIL>.*))(HOST:(?<HOSTNAME>.*))?

https://regex101.com/r/SDOcIR/1

Примечание. Я не ищу это для конкретного языка.

Спасибо

1 Ответ

0 голосов
/ 21 февраля 2019

Попробуйте Regex: (?:MAIL:(?<EMAIL>[^ ]+))|(?:HOST:(?<HOSTNAME>.*))

Демо

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