У меня есть файл ввода, который содержит данные, отформатированные следующим образом:Создать новую строку на основе каждого регулярного выражения в python
a; b, c | derp derp "X1234567, Y1234567, Z1234567" derp derp a; b, c |
Я хотел бы использовать Python для синтаксического разбора в несколько строк для каждого элемента, который встречается между двойными кавычками.
Выход для приведенного выше примера будет:
а; b, c | derp derp X1234567 derp derp a; b, c |
a; b, c | derp derp Y1234567 derp derp a; b, c |
a; b, c | derp derp Z1234567 derp derp a; b, c |
До сих пор у меня есть что-то вроде этого:
import re
prefix = re.compile ('^(.*?)"')
pattern = re.compile('\"(.*?)([A-Z]{1}[0-9]{7})(.*?)\"')
suffix = re.compile ('"(.*?)$')
for i, line in enumerate(open('myFile.txt')):
for match in re.finditer(pattern, line):
print prefix, match.group(), suffix
Но это только кажется, возвращает первый матч каждого из содержимого.
Отличный трюк! – didjit