Предполагая, что запись представляет собой весь текст между парами &CRB
и &END
, вы можете вытянуть текст между ними примерно так:
import re
# the regular expression treats newlines as a regular character, so the
# multiline entries are okay. It's non-greedy, so it gets individual entries.
pat = re.compile(r'&CRB(.+?)&END', re.DOTALL)
s = ''' &CRB A='test1' B=123,345, 678 &END
Misc text potentially between entries ...
&CRB A='test2'
B=788, 345, 3424 &END
&CRB A='test3'
B=788, 345, 3424 &END
&CRB A='test4' B=788, 345, 3424 &END'''
for entry in pat.findall(s):
# do something with each entry
print entry
печатает это:
A='test1' B=123,345, 678
A='test2'
B=788, 345, 3424
A='test3'
B=788, 345, 3424
A='test4' B=788, 345, 3424
... ваша проблема - очистить и интерпретировать содержимое каждой из этих записей ...