我正在尝试使用库re
从文件中获取一些数据。我需要的数据如下所示:
g:=Graph<5|{ {2, 3}, {4, 5}, {1, 3}, {1, 2}, {1, 5}, {1, 4}, {2, 4}, {3, 5}, {2, 5}, {3, 4} }>
因此它应该介于g:=Graph<
和>
之间。
我尝试过
with open('Graphs.txt') as f:
print(re.findall("g:=.*;;",f.read()))
但是它不起作用(它返回一个空列表)。有人可以帮助我吗?很抱歉,如果这很琐碎,但我没有经验。
文本文件中有很多文本解释了不同类型的图,这就是为什么其中包含许多相同类型的图的原因。
您可以对{digit,digit}部分使用重复模式,并在组中捕获值。
g:=Graph<(\d+\|{ {\d+, \d+}(?:, {\d+, \d+})* })>
不太严格的模式可能是使用与除<
或>
以外的任何字符匹配的否定字符类>
g:=Graph<([^<>]+)>
您可以使用此正则表达式: