Regex从一个混合了IP和主机名的列表中捕获IP或主机名



对于我的情况,我需要从列表中提取IP地址或主机名。例如,假设这是列表

d-bns-teaut-12.企业网:9100,10.212.142.61:9100,d-bns-teaut-23.企业网:9100,10.212.142.87:9100,d-bns-teaut-25.企业网:9100,10.212.142.98:9100

我需要提取

d-bns-teaut-12,10.212.142.61,d-bns-teaut-23,10.212.14.287,d-bns-cteaut-25和10.212.142.98

到目前为止,我知道如何提取IP或主机名,但不能同时使用正则表达式提取两者。

我尝试了表达式/([a-zA-Z0-9.-]+)/,使用它我可以提取IP,如果我再添加正则表达式模式来提取.corporate.net,我就不会在结果中获得IP。

您可以使用

([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}|[^.]+)

模式是捕获组((...)(,与任一匹配

  • [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}-.的一位、两位或三位数字和其他三位数字
  • |-或
  • [^.]+-除.字符之外的一个或多个字符

最新更新