打印 ip 时的正则表达式错误
regex bug while printing an ip
import re
text = "|2018-11-03 18:20:59.0|FrozoneMD|8607446f-5748-479f-b72a-e0d25c1c7757|70.19.66.12|"
ip = re.findall("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}", text)
print(ip)
程序搜索 txt 文件并使用正则表达式找到这一行:
|2018-11-03 18:20:59.0|FrozoneMD|8607446f-5748-479f-b72a-e0d25c1c7757|70.19.66.12|
当我打印 var ip 时,它打印如下:
[('70', '.12', '12')]
而不是:
[('70.19.66.12')]
你的评论澄清了问题让我相信这可能是一个可能的解决方案。
text = text.split('|')[-2]
您可以使用 re.search()
并只打印组 (0),如果有任何匹配项
import re
text = "|2018-11-03 18:20:59.0|FrozoneMD|8607446f-5748-479f-b72a-e0d25c1c7757|70.19.66.12|"
ip = re.search("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}", text)
if ip:
print(ip.group(0))
else:
print('none')
编辑:
如果你需要得到超过1个匹配项,你可以使用re.finditer()
import re
text = "|2018-11-03 18:20:59.0|FrozoneMD|8607446f-5748-479f-b72a-e0d25c1c7757|70.19.66.12|\n|2018-11-03 18:20:59.0|FrozoneMD|8607446f-5748-479f-b72a-e0d25c1c7757|70.19.66.13|"
ip = re.finditer("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}", text)
for i in ip:
print(i.group(0))
输出:
70.19.66.12
70.19.66.13
import re
text = "|2018-11-03 18:20:59.0|FrozoneMD|8607446f-5748-479f-b72a-e0d25c1c7757|70.19.66.12|"
ip = re.findall("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}", text)
print(ip)
程序搜索 txt 文件并使用正则表达式找到这一行:
|2018-11-03 18:20:59.0|FrozoneMD|8607446f-5748-479f-b72a-e0d25c1c7757|70.19.66.12|
当我打印 var ip 时,它打印如下:
[('70', '.12', '12')]
而不是:
[('70.19.66.12')]
你的评论澄清了问题让我相信这可能是一个可能的解决方案。
text = text.split('|')[-2]
您可以使用 re.search()
并只打印组 (0),如果有任何匹配项
import re
text = "|2018-11-03 18:20:59.0|FrozoneMD|8607446f-5748-479f-b72a-e0d25c1c7757|70.19.66.12|"
ip = re.search("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}", text)
if ip:
print(ip.group(0))
else:
print('none')
编辑:
如果你需要得到超过1个匹配项,你可以使用re.finditer()
import re
text = "|2018-11-03 18:20:59.0|FrozoneMD|8607446f-5748-479f-b72a-e0d25c1c7757|70.19.66.12|\n|2018-11-03 18:20:59.0|FrozoneMD|8607446f-5748-479f-b72a-e0d25c1c7757|70.19.66.13|"
ip = re.finditer("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}", text)
for i in ip:
print(i.group(0))
输出:
70.19.66.12
70.19.66.13