[英]capture data between a repeating string in 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)
这只会在搜索字符串之后返回带偶数的行(我假设在前面的偶数迭代中包含了奇数部分)
任何解决方法?
您应该考虑为此使用split
而不是findall
。 您似乎已经想到了更多:
re.split(r'map report for \d+\n', str)
这可以极大地简化您的情况。
您的正则表达式会消耗匹配项中的map
词。 您需要提前:
map=re.findall(r"map report for(.+?)\S*\W*(?=map)",filestring,re.S)
这样,它可以检查您的比赛是否跟在我的map
后面,但是不会被消耗 。
我将使用的正则表达式将是这样的:
(map report for \d+)(.*?)\1
\\1
将保留您首先捕获的内容,并在最后尝试再次匹配它,因此与其他方法不同,您可以在两者之间使用map
字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.