我很遗憾从String中提取IPv4地址。
我的输入字符串&约束如下:
0.0.0.0
至255.255.255.255
this is an ip
& this is an ip 200.100.2.32
200.100.2.32 is an ip
|输出:['200.100.2.32']
200.100.2.32is an ip
|输出:[]
the ip is 200.100.2.32
|输出:['200.100.2.32']
the ip is200.100.2.32
|输出:[]
the ip is 200.100.2.32 and it is ipv4
|输出:['200.100.2.32']
the ip is 200.100.2.32and it is ipv4
|输出:[]
200.100.2.32 100.50.1.16
|输出:['200.100.2.32', '100.50.1.16']
200.100.2.32.100.50.1.16
|输出:[]
我正在尝试为上述情况构建一个正则表达式,它们看起来相当简单,而且我无法合并所有正则表达式检查。
我一直在指这些链接上的答案:IEnumerator
,Link1,Link2
有人可以帮助我朝正确的方向发展吗?总结一下:
0.0.0.0
至255.255.255.255
代码
def find_ip(str) :
ip_pattern = re.compile('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s') # need to strengthen the regex here
ip = re.findall(ip_pattern, str)
return ip
答案 0 :(得分:1)
正则表达式:
(?:^|\b(?<!\.))(?:1?\d\d?|2[0-4]\d|25[0-5])(?:\.(?:1?\d\d?|2[0-4]\d|25[0-5])){3}(?=$|[^\w.])
匹配example。