[英]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.