简体   繁体   中英

Split regex matches into multiple lines

I'm using regex to read a line, gather all the matches and print each match as a new line. So far i have read the line and extracted the data I need but the code prints it all in a single line. Is there a way to print each match separately?

Here is the code i have been using:

import os
import re

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

which gives me [['0', '0.000000E+000', 'NCAP', '64Q34', '39', '39', '1028', 'NCAP', '1', '1', 'NCAP']]. Searching for data between ' ' will get me the individual results. Using the code below will find all matches but it keeps it all as one line, giving me the same as the input.

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

I am unsure what you are trying to capture using regexs, but from what I understand you want to split msg up by commas ',' and print each element on a new line.

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
    ...

This will print each element of msg on a new line - the elements of msg are split up by ','.

I would also use this great online interactive regex tester to test your regexs in real time to understand how to use regex / which expressions to use. (make sure to select python language).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM