在python中怎么匹配IP地址

我现在需要匹配list中的所有未x.x.x.1的IP地址,这个我不知道怎么搞,我想到的就是用正则匹配,小弟正则不是很懂,有大佬能帮忙看一下吗

阅读 7.2k
2 个回答

简陋版~, 对于ip的合法性没有做匹配, 仅仅匹配符合x.x.x.1

import re
ip_list = [
    '1.2.2.1',
    '1.2.3.3',
    '16.25.22.1',
    '112.23.22.1',
    '11.2.2.1',
    '1.2.32.11',
]
ip_regx = re.compile(r'(?:[\d]+\.)+1$')
for _ in ip_list:
    if re.search(ip_regx, _):
        print _
新手上路,请多包涵

import re
key = r"saas and sas 192.168.1.128and saaas"

p1 = r"d+.?d+.?d+.?d+" #192.168.1.1数字加点判断 简化版

p1 = r"d{1,3}.?d{1,3}.?d{1,3}.?d{1,3}" #192.168.1.1数字加点判断

p1 = r"[0-2]d?.[0-2]d?.[0-2]d*?.d{1,3}" #192.168.1.1数字加点判断

p1 = r"([0-2]d*?.)"有问题

pattern1 = re.compile(p1)
print(pattern1.findall(key))

string = 'asa255.245.99.250wewewe'

p1='(.ddd){1}' #测试|满足左边再满足右边

p1='(.2d|.[0-1]?d?d)' #测试满足.起始为.

p1='((2d.|[0-1]?d?d.){3})' #测试满足.起始为.

p1='(((2d.|[0-1]?d?d.){3})ddd)' #正确的第一次

p1='(((2d.|[0-1]?d?d.){3})(2dd|[0-1]?d?d))' #第二次正确

p1=r'(((25[0-5]|2d|[0-1]?d?d).){3}25[0-5]|2dd|[0-1]?d?d)'#最终的结果输出[('255.245.99.250', '99.', '99')]

p1="((25[0-5]|2[0-4]d|[0-1]?d?d)(.(25[0-5]|2[0-4]d|[0-1]?d?d)){3})" #最终的结果

p1="(25[0-5]|2[0-4]d|[0-1]?d?d)(.(25[0-5]|2[0-4]d|[0-1]?d?d)){3}"

pattern1 = re.compile(p1)
print(pattern1.findall(string))

这是我写的测试 Python 3.4测试过的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题