我有一个文本文件,其中包含如下条目:
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
的may功能,但是没有找到匹配的 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*
-a:
用0+空格括起来adress
-文本子字符串\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