【问题标题】:How does match multiple IP Address after comma? [closed]逗号后如何匹配多个IP地址? [关闭]
【发布时间】:2021-10-09 21:53:18
【问题描述】:

例如一个IP列表:

5.2.69.50
5.104.110.89,5.183.209.217 
5.199.143.202,18.27.197.252,23.31.59.211,23.114.165.250
23.129.64.137
23.129.64.148,23.129.64.150,23.129.64.157,23.129.64.163 

我在这种情况下使用 \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} 我会匹配所有这些 ip,但在这种情况下,我想要自我重复的 IP。

所需的输出

(5.104.110.89,5.183.209.217) 
(5.199.143.202,18.27.197.252,23.31.59.211,23.114.165.250)
(23.129.64.148,23.129.64.150,23.129.64.157,23.129.64.163) 

【问题讨论】:

  • “我想要自己重复的IP”是什么意思?您是否正在寻找具有至少两个 IP 的 ?为什么不直接寻找,
  • 请注意,\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} 不足以准确匹配仅有效的 IP。会匹配999.999.999.999等无意义的“IP”,显然不适合IPv6。
  • 仅匹配有效 IP 是不够的。回答你的第一个问题,因为阅读这些行我总是会有一个IP,但如果出现两个,则需要过滤。

标签: python regex ip-address


【解决方案1】:

为什么不只包含逗号, 标记并且只匹配至少有两个匹配项的行?

(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(,|$)){2,}

regex101

【讨论】:

  • 对于@ThiagoL 信息,此模式无法识别有效 IP。
  • @Alireza 根据标准 IP 地址规范,这些地址是“有效的”,这似乎不在 OP 的原始要求中。如果这是他们要求的一部分,我会鼓励他们更新他们的问题以反映这一点。
  • 是的,我刚刚说的是 OP 信息。
  • 为什么和第二行不匹配? 5.104.110.89,5.183.209.217
  • @ThiagoL 错字 - m 标志不应该启用 - 请参阅 updated regex101
猜你喜欢
  • 2021-08-01
  • 1970-01-01
  • 2019-06-03
  • 2017-06-06
  • 2011-08-17
  • 2012-06-26
  • 2016-11-19
  • 2021-06-23
  • 1970-01-01
相关资源
最近更新 更多