提取<和>之间的特定字符串

时间:2020-03-14 17:29:04

标签: python regex python-3.x

我正在尝试使用库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()))

,但是它不起作用(返回一个空列表)。有人可以帮助我吗?很抱歉,这很琐碎,但我没有经验。

文本文件中包含大量解释不同类型图形的文本,这就是为什么其中包含大量相同类型的图形的原因。

2 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式:

g:=Graph<([^>]+)>

否则,您的语法正确。

答案 1 :(得分:2)

您可以对{digit,digit}部分使用重复模式,并在组中捕获值。

g:=Graph<(\d+\|{ {\d+, \d+}(?:, {\d+, \d+})* })>

Regex demo

不那么严格的模式可能是使用与除<>以外的任何char匹配的否定字符类

g:=Graph<([^<>]+)>

Regex demo