我正在使用正则表达式读取一行,收集所有匹配项并将每个匹配项打印为新行。 到目前为止,我已阅读该行并提取了我需要的数据,但代码将所有数据打印在一行中。 有没有办法分别打印每个比赛?
这是我一直在使用的代码:
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')
答案 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语言)。