拆分正则表达式匹配成多行

时间:2018-06-12 09:09:57

标签: regex python-3.6

我正在使用正则表达式读取一行,收集所有匹配项并将每个匹配项打印为新行。 到目前为止,我已阅读该行并提取了我需要的数据,但代码将所有数据打印在一行中。 有没有办法分别打印每个比赛?

这是我一直在使用的代码:

import os
import re

msg = "0,0.000000E+000,NCAP,64Q34,39,39,1028,NCAP,1,1,NCAP"
text = [msg.split(',')] 

给了我[[' 0',' 0.000000E + 000',' NCAP',' 64Q34',&#39 ; 39','',' 1028',' NCAP',' 1',' 1' ,' NCAP']]。 在'之间搜索数据'会得到我个人的结果。 使用下面的代码将找到所有匹配但它将所有匹配保持为一行,给我与输入相同。

text = str(text)
line = text.strip()
m = re.findall("'(.+?)'", line)
found = str(m)
print(found+ '\n')

1 个答案:

答案 0 :(得分:0)

我不确定你要使用正则表达式捕获什么,但据我所知,你想用逗号分隔msg,'并在新行上打印每个元素。

msg = "0,0.000000E+000,NCAP,64Q34,39,39,1028,NCAP,1,1,NCAP"
msg = msg.split(',')
for m in msg:
    print(m)
>>> 0
    0.000000E+000
    NCAP
    ...

这将在新行上打印msg的每个元素 - msg的元素被','拆分。

我还会使用这个优秀的在线互动regex tester来实时测试您的正则表达式,以了解如何使用正则表达式/使用哪些表达式。 (确保选择python语言)。