我有如下的正则表达式
match = re.findall(r'[0-9]+(?:\.[0-9]+){3}', source)从源字符串中提取类似于192.168.1.1的内容可以很好地工作。我如何修改这个正则表达式,使其与下面的代码一起工作:
192.168.1.1:80谢谢你的帮助。
另外,很抱歉我的英语不好。
发布于 2014-05-08 20:45:48
这将使IP地址与端口号相匹配。
match = re.findall(r'[0-9]+(?:\.[0-9]+){3}:[0-9]+', source)如果您希望灵活地匹配不带端口和带端口的IP地址,您可以使用:
match = re.findall(r'[0-9]+(?:\.[0-9]+){3}(:[0-9]+)?', source)发布于 2021-10-20 11:20:42
由于没有考虑最高端口号((2^16 - 1)或65,535) (在上面的解决方案中),因此这应该是适用于您的情况的正则表达式:
^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}(:((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9]{4})|([0-5]{1,5})|([0-9]{1,4})))?$|^$https://stackoverflow.com/questions/23542035
复制相似问题