我在文本文件中有此示例數據:09-02|||||||09-14|07:24|12:15|12:58| | |09-03| | | | | | |09-15|||||||我正在嘗試使用這種模式獲取所有數據并將其存儲在數組或列表中:\d{2,3}-\d{2,3}打印時的輸出數據應該是這樣的:['09-02','09-14','09-02','09-15']我嘗試了這段代碼,但它打印了與模式匹配的所有行:n_date = re.compile('\d{2,3}-\d{2,3}')with open('sample_2.txt', 'r') as n: for line in n: re.match(n_date, line)print(line)請告訴我如何才能獲得與我的正則表達式模式匹配的數據而不是整行。謝謝!
2 回答

慕婉清6462132
TA貢獻1804條經驗 獲得超2個贊
試試這個:
import re
n_date = re.compile('\d{2,3}-\d{2,3}')
with open('sample_2.txt', 'r') as n:
n = n.read()
result = re.findall(n_date, n)
print(result)
它打印出:
['09-02', '09-14', '09-03', '09-15']
您的代碼只是打印 for 循環的最后一行,您沒有存儲或使用re.match. re.findall會給你你需要的,一個匹配模式的所有元素的列表。

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
你應該使用 re.findall
n_date = re.compile('\d{2,3}-\d{2,3}')
result = []
with open(‘re.txt’, ‘r’) as n:
for line in n:
result += re.findall(n_date, line)
print(result)
添加回答
舉報
0/150
提交
取消