GoJ*_*ian 25 python regex string
我的朋友,
我真的想用Python从字符串中提取一个简单的IP地址(实际上是一行的html).但事实证明,2小时过去了,我仍然无法找到一个好的解决方案.
>>> s = "<html><head><title>Current IP Check</title></head><body>Current IP Address: 165.91.15.131</body></html>"
Run Code Online (Sandbox Code Playgroud)
- '165.91.15.131'是我想要的!
我尝试使用正则表达式,但到目前为止我只能使用第一个数字.
>>> import re
>>> ip = re.findall( r'([0-9]+)(?:\.[0-9]+){3}', s )
>>> ip
['165']
Run Code Online (Sandbox Code Playgroud)
事实上,我并不觉得我对reg-expression有一个牢固的把握,上面的代码是从网上的其他地方找到并修改过来的.
寻求您的意见和建议!
Mar*_*ers 55
删除您的捕获组:
ip = re.findall( r'[0-9]+(?:\.[0-9]+){3}', s )
Run Code Online (Sandbox Code Playgroud)
结果:
['165.91.15.131']
Run Code Online (Sandbox Code Playgroud)
笔记:
0.00.999.9999
.这不一定是个问题,但您应该了解它并可能处理这种情况.您可以将+
to 更改{1,3}
为部分修复,而不会使正则表达式过于复杂.您可以使用以下正则表达式仅捕获有效的IP地址
re.findall(r'\b25[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]?\.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]?\b',s)
Run Code Online (Sandbox Code Playgroud)
回报
['165', '91', '15', '131']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57296 次 |
最近记录: |