亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python regex:在文本文件中獲取正則表達式模式并存儲在數組或列表中

Python regex:在文本文件中獲取正則表達式模式并存儲在數組或列表中

嚕嚕噠 2021-07-01 14:09:51
我在文本文件中有此示例數據: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會給你你需要的,一個匹配模式的所有元素的列表。


查看完整回答
反對 回復 2021-07-06
?
慕雪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)


查看完整回答
反對 回復 2021-07-06
  • 2 回答
  • 0 關注
  • 258 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號