使用正则表达式从文本文件中提取数据

2024-05-15 11:23:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件,我正试图使用正则表达式从中提取数据,下面是该文本文件的一个示例:

 Card number: 9999*********2789, SEQ: 195
Current session ID: 175
 21/01/2021 09:53:41 : Session terminated

下面是我用来获取所需大部分数据的正则表达式:

regex = r"number:\s(\d+\*+\d+).*?ID:\s*(\d*).*?ATM:\s(\w+).*?STAN:\s(\d+).*?Total cash dispensed:\s*([a-zA-Z0-9 ]*).*?completed[\r\n]+(.*?)\s:"

输出如下:

在第四列“4000 MGA”中,我想将其分为两列,分别为“4000”和“MGA”,我尝试使用以下表达式,但没有得到任何结果:

regex = r"number:\s(\d+\*+\d+).*?ID:\s*(\d*).*?ATM:\s(\w+).*?STAN:\s(\d+).*?cass 1:\s*\d*([a-zA-Z ]*).?Total cash dispensed:\s*([0-9 ]*).*?completed[\r\n]+(.*?)\s:"

Tags: 数据id示例numbercashregextotal文本文件
1条回答
网友
1楼 · 发布于 2024-05-15 11:23:44

您只需将一个捕获组拆分为2个,然后用空格将它们分开:

regex = r"number:\s(\d+\*+\d+).*?ID:\s*(\d*).*?ATM:\s(\w+).*?STAN:\s(\d+).*?Total cash dispensed:\s*([a-zA-Z0-9]+)\s+([a-zA-Z0-9]+).*?completed[\r\n]+(.*?)\s:"

RegEx Demo

相关问题 更多 >