gpt4 book ai didi

Python 正则表达式读取/etc/resolv.conf 并只返回 ip 地址,认为它几乎在那里,

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:14 24 4
gpt4 key购买 nike

我一直在写一个 python 脚本,我在某个函数上遇到了问题,它应该打开/etc/resolv.conf 文件,逐行读取它并只返回 ip 地址。虽然它似乎是在寻找 IP 地址,但它并没有告诉我内存的哪一部分,不知道如何让它告诉我匹配的字符串本身。

函数如下:

def get_resolv():
nameservers=[]
rconf = open("/etc/resolv.conf","r")
line = rconf.readline()
while line:
try:
ip = re.search(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b",line)


except:
ip = "none set"
print ip
nameservers.append(ip)
line= rconf.readline()

return nameservers

这是调用时的输出:

None
<_sre.SRE_Match object at 0xb76964b8>
<_sre.SRE_Match object at 0xb7696db0>

最佳答案

re.search 返回 Match Object .这是一个具有许多属性的对象,这些属性可以告诉您有关匹配的信息。

要获取整个匹配的文本,请使用 ip.group(0)ip.group()

如果没有匹配项,re.search 也不会抛出异常,而是返回 None。所以你的代码应该是这样的:

ip = re.search(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b",line)

if ip is None:
ip = "none set"

关于Python 正则表达式读取/etc/resolv.conf 并只返回 ip 地址,认为它几乎在那里,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5474327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com