使用python和regex我尝试匹配重复/重叠模式/块,如
04/00127-48
U 05062012
A: SAKARK
T_ Par.: dsfsd
在
04/00127-48
U 05062012
A: SAKARK
T_ Par.: dsfsd
04/00168-42
U 05062012
A: SAKARK
T_ Par.: fdfs
04/00168-43
U 05062012
A: SAKARK
T_ Par.: fdfs
我试过了
'(?=(\d+\/.*))'
这似乎有用
'((\d+\/.*?)=?\d+\/)
但是有更好的方法吗?
答案 0 :(得分:2)
这回答了你的问题:
re.findall(r'.+?(?=\d\d\/|$)',s,re.DOTALL)
要让re.DOTALL
匹配行尾,需要 .
。
正则表达式前面的r
使它成为原始字符串,因此使用反斜杠进行转义会保留原样,因此正则表达式函数将处理它们。这里不需要它,但仍然是正则表达式的好习惯。
你的问题不是很清楚。也许这比你想要的更好?
list(zip(*[iter(s.splitlines())]*4))
它给出了一个包含元组的列表。