Python regex:在文本文件中获取正则表达式模式并存储在数组或列表中

我在文本文件中有此示例数据:


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)

请告诉我如何才能获得与我的正则表达式模式匹配的数据而不是整行。谢谢!


噜噜哒
浏览 226回答 2
2回答

慕婉清6462132

试试这个:import ren_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

你应该使用 re.findalln_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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python