正则表达式提取多个匹配字符串

时间:2019-02-21 14:37:55

标签: regex

我正在尝试使用正则表达式从文本文件中提取主机名和电子邮件地址。这些字段是可选的。在某些情况下,可能只有一个字段可用。

例如:如果电子邮件地址不可用,则应仅提取主机名,反之亦然。

我几乎可以使用正则表达式。只是不适用于单个案例。请参见下面的链接中的正则表达式。

  

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

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

注意:我不是在寻找特定的语言。

谢谢

1 个答案:

答案 0 :(得分:1)

尝试使用正则表达式:(?:MAIL:(?<EMAIL>[^ ]+))|(?:HOST:(?<HOSTNAME>.*))

Demo