如何从HTML字符串中提取IP地址?

问题描述

删除您的捕获组:

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表达式没有把握。以上代码已在网络上的其他地方找到并进行了修改。