为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 225 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信