在python中捕获重复字符串之间的数据

2024-06-14 06:41:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我要提取重复字符串之间的所有数据

文本是这样的

map report for 0

...................
..............
lot of data in between
.....
......

map report for 1

我的正则表达式是

map = re.findall(r"map report for(.+?)\S*\W*map", filestring, re.S)

这只返回在搜索字符串后面带有偶数的行(我假设奇数部分包含在前面的偶数迭代中)

有解决办法吗?你知道吗


Tags: of数据字符串in文本reportremap
3条回答

正则表达式使用偶数匹配中的map字。你需要向前看:

map=re.findall(r"map report for(.+?)\S*\W*(?=map)",filestring,re.S)

通过这种方式,它会检查匹配项是否被我的map跟踪,但不会被消耗。你知道吗

为此,应该考虑使用split而不是findall。似乎更多的是你的想法:

re.split(r'map report for \d+\n', str)

这大大简化了你的情况。你知道吗

我将使用的正则表达式如下:

(map report for \d+)(.*?)\1

\1将保留您首先捕获的内容,并在最后尝试再次匹配它,因此与其他方法不同,您可以在两者之间使用map字符串。你知道吗

相关问题 更多 >