現在我有一個正在讀取的 test.txt 檔案。它有幾個換行符,所以我正在使用 re.DOTALL。如何將后續模式組合成對?
測驗.txt:
blah blah blah||| blah blah||
Key_one1_end || blah blah
blah blah || blah
blah blah |||||| blah blah Value_number : 10
blah blah blah||| blah blah||
Key_two2_end || blah blah
blah blah || blah
Value_number : f
這是我的代碼
f = open(r'path/to/file/test.txt')
list= re.findall('(Key_\w*_end)|(Value_number...\w*)', f.read(), re.DOTALL)
print (list)
output: [('Key_one1_end', ''), ('', 'Value_number : 10'), ('Key_two2_end', ''), ('', 'Value_number : f')]
我希望輸出看起來像這樣
[('Key_one1_end','Value_number : 10'), ('Key_two2_end', 'Value_number : f')]
有什么建議么?
uj5u.com熱心網友回復:
pattern1|pattern2匹配任一模式,因此串列中的每個匹配項將只包含其中一個匹配項。
如果您想將它們組合在一個匹配中,請不要使用替代方案。使用通配符來匹配兩個模式之間的文本。
list= re.findall('(Key_\w*_end).*?(Value_number...\w*)', f.read(), re.DOTALL)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479785.html
