python - 只匹配IP地址,不匹配其他数字

标签 python regex ip-address python-re named-captures

我希望以下正则表达式代码返回 IP 地址的输出,而不从源文件返回其他数值作为 IP。

代码:

import re

logdata = 146.204.224.152 - feest6811 [21/Jun/2019:15:45:24 -0700] "POST /incentivize HTTP/1.1" 302 4622
for item in re.finditer("(?P<host>[\d.]+)", logdata):
    print(item.groupdict())

所需输出:

{'host': '146.204.224.152'}

不需要的输出:

{'host': '6811'}

最佳答案

我认为应该这样做:

(?P<host>(\d+\.){3}\d+)

关于python - 只匹配IP地址,不匹配其他数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66824660/

相关文章:

regex - 正则表达式中的 `(\S.*\S)` 和 `^\s*(.*)\s*$` 有什么区别?

regex - 尽管输入了 10 位数字的正则表达式,但输入的手机号码值仍显示 "not a valid number"

python - 告诉一个原始字符串(r '') from a regular string ('')?

c# - 从服务引用 C# 中获取地址

python - 根据条件为自定义列分配值

python - 没有名为 pymongo 的模块

python - 获取主机的所有外部IP地址

Java:如何获取可以到达远程IP的本地接口(interface)的IP?

python - Glade GTK TextBuffer 更改或设置颜色

dictionary - 在 python 中,map(func,list) 和 [func(x) for x in list] 有什么区别