我需要解析一个字符串并从中读取一个特定的子字符串。我需要解析的字符串如下:
domain
(
(device
(console
(xxxxxx)
(XXXXXX)
)
)
)
domain
(
(device
(vfb
(xxxxxx)
(location : 5903)
)
)
)
这只是一个示例字符串。实际的字符串可能包含许多这样的子字符串。 我需要从“vfb”子字符串中获取位置字段的值。我尝试了findall和搜索功能如下
import re
text=re.search('(device(vfb(.*?)))',stringname)
和
import re
text=re.findall('(device(vfb(.*?)))',stringname,re.DOTALL)
但我总是得到空字符串。 有一个简单的方法来做到这一点?感谢
答案 0 :(得分:1)
为什么不只查找location
键值对?
>>> re.findall(r'(\w+) : (\w+)', s)
[('location', '5903')]
答案 1 :(得分:0)
简单的python脚本:
fp = open("input.txt", "r")
data = fp.readlines()
for line in data:
if "location" in line:
print line.split(":")[1].split(")")[0].strip()
fp.close()
答案 2 :(得分:0)
re.findall(r'device.*?\(vfb.*\(.*\).*(\(.*?\))', s, re.DOTALL)