问题描述
删除您的捕获组:
ip = re.findall( r'[0-9]+(?:\.[0-9]+){3}', s )
结果:
['165.91.15.131']
笔记:
- 如果您正在解析HTML,那么查看BeautifulSoup可能是一个好主意。
- 您的正则表达式匹配一些无效的IP地址,例如
0.00.999.9999
。这不一定是问题,但是您应该意识到这一点并可能处理这种情况。您可以将更+
改为{1,3}
部分修复,而不必使正则表达式过于复杂。
解决方法
我想使用Python从字符串(实际上是单行HTML)中提取IP地址。
>>> s = "<html><head><title>Current IP Check</title></head><body>Current IP Address: 165.91.15.131</body></html>"
-‘165.91.15.131’是我想要的!
我尝试使用正则表达式,但到目前为止,我只能得到第一个数字。
>>> import re
>>> ip = re.findall( r'([0-9]+)(?:\.[0-9]+){3}',s )
>>> ip
['165']
但是我对reg表达式没有把握。以上代码已在网络上的其他地方找到并进行了修改。