我有一個這樣的字符串:蟒蛇上下文敏感的正則表達式解析hierchical文本結構
Group 1:
Line A
Line B
Line C
Group 2:
Line A
Line B
我想知道是否有可能與結果是像一個正則表達式解析此:
Group: 1, Line: A
Group: 1, Line: B
Group: 1, Line: C
Group: 2, Line: A
Group: 2, Line: B
這是我到目前爲止有:
regex = r'''(?x)
(?<=Group\s(\d):\n)
(?:Line\s\w+\n)*
Line\s(\w+)
'''
match_iter = re.finditer(regex,test,re.M|re.S|re.I)
for m in match_iter:
print m.groups()
但是,這是錯誤的,因爲我只得到:
('1', 'C')
('2', 'B')
而我卡在這裏......任何想法我怎麼能做到這一點? (或者如果它甚至有可能與重新做)
編輯: 我要尋找一個正則表達式唯一的解決辦法,因爲我試圖堵塞這個到光框架,只需要一個正則表達式,而不是任意代碼。我不能使用任何狀態等。這意味着在上面的代碼片段中,我只能改變'正則表達式'的值。
任何沒有狀態的方法?它只需要是一個正則表達式,因爲我試圖將它插入一個只需要正則表達式而不是任意代碼的簡單框架。 – jeff
@jeff:我不相信用單個正則表達式是可能的;你使用什麼框架?也許我們可以提出另一種方法? –
我們有我們自己的框架,我們用它來修改某些命令的輸出。例如,在上面的字符串中,我可以輸入類似(1,B)的內容作爲關鍵字,然後將該行的值或行中的某些項目更改爲任意值。 – jeff