gpt4 book ai didi

具有多种模式的 Python re.findall

转载 作者:行者123 更新时间:2023-11-28 21:37:27 26 4
gpt4 key购买 nike

我有一个文本文件,其中包含如下条目:

 Interface01 :
adress
192.168.0.1
next-interface:
interface02:
adress
10.123.123.214
next-interface:
interface01 :
adress
172.123.456.123

我想解析它并只获取Interface01对应的IP地址

我尝试了 python re.finall 的一些操作,但无法得到任何匹配的内容

 i = open(f, r, encoding='UTF-8')
txt = i.read()
interface = re.findall(r'Interface01 :\s*(.adress*)n',txt,re.DOTALL)

但没有任何作用。

预期结果是192.168.0.1

最佳答案

您可以使用

Interface01\s*:\s*adress\s+(.*)

请参阅regex demo 。在 Python 中,使用 re.search 获取第一个匹配项,因为您只想提取 1 个 IP 地址。

图案详细信息:

  • Interface01 - 文字子字符串
  • \s*:\s* - 包含 0 个以上空格的 :
  • 地址 - 文字子字符串
  • \s+ - 1 个以上空格
  • (.*) - 第 1 组:除换行符之外的任何 0+ 个字符。

Python demo :

import re
reg = r"Interface01\s*:\s*adress\s+(.*)"

with open('filename') as f:
m = re.search(reg, f.read())
if m:
print(m.group(1))

# => 192.168.0.1

关于具有多种模式的 Python re.findall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49430262/

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