重复一段正则表达式?

时间:2012-01-12 22:38:42

标签: python regex

我不得不解析电子表格的文本转储。我有一个正则表达式,正确解析数据的每一行,但它相当长。它基本上只匹配某种模式12或13次。

我想重复的模式是

\s+(\w*\.*\w*);

这是正则表达式(缩写)

^\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);

有没有办法在不复制粘贴的情况下将模式匹配一​​定次数?这些部分中的每一部分都对应于数据列,所有这些都是我需要的。我顺便使用Python。谢谢!

2 个答案:

答案 0 :(得分:40)

(\s+(\w*\.*\w*);){12}

{n}是"重复n次"

如果你想要" 12 - 13"次,

(\s+(\w*\.*\w*);){12,13}

如果你想要" 12 +"次,

(\s+(\w*\.*\w*);){12,}

答案 1 :(得分:6)

如何使用:

(\s+(\w*\.*\w*);)*

您是否找到了findall方法?或者考虑在;拆分?

map(lambda x: x.strip(), s.split(";"))

可能是你真正想要的。