我有一个包含多个 IP 地址和一些随机内容的字符串。例如像这样的:
21/Jun/2018:01:15:38 +0000 188.79.169.152 157.52.69.50 443 - - GET / 157.52.69.30 157.52.69.10
并得到这个正则表达式:
[0-9]+(?:\.[0-9]+){3}
问题是这会匹配多次,但我不需要。这个正则表达式缺少什么所以它只会匹配一次?
Thanks,
您可以使用re.match
它从字符串的开头匹配 ptrn
所以只需添加一个.*
到模式的开头,我们可以匹配从字符串开头到第一个 IP 地址的所有内容
>>> import re
>>> s = "21/Jun/2018:01:15:38 +0000 188.79.169.152 157.52.69.50 443 - - GET / 157.52.69.30 157.52.69.10"
>>>
>>> ptrn = r'.*?([0-9]+(?:\.[0-9]+){3})'
>>> re.match(ptrn, s).groups()[0]
'188.79.169.152'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)