重叠图案正则表达式

时间:2012-07-07 18:09:51

标签: python regex

使用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+\/)

但是有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

这回答了你的问题:

re.findall(r'.+?(?=\d\d\/|$)',s,re.DOTALL)
要让re.DOTALL匹配行尾,需要

.

正则表达式前面的r使它成为原始字符串,因此使用反斜杠进行转义会保留原样,因此正则表达式函数将处理它们。这里不需要它,但仍然是正则表达式的好习惯。

你的问题不是很清楚。也许这比你想要的更好?

list(zip(*[iter(s.splitlines())]*4))

它给出了一个包含元组的列表。