我在文本文件中有此示例数据: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
提交
取消