重复一段正则表达式?

问题描述:

我不得不解析电子表格的文本转储。我有一个正则表达式,可以正确解析数据的每一行,但它相当长。它基本上只是匹配一个特定的模式12或13次。重复一段正则表达式?

我要重复的图案是

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

这是正则表达式(缩短)

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

有没有办法匹配模式的设定次数没有复制粘贴像这个?每个部分都对应于数据列,所有这些都是我需要的。顺便说一句,我正在使用Python。谢谢!

+0

更改接受答案的时间。 – Noumenon 2018-02-12 03:17:35

如何使用:

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

你找到findall方法了吗?或考虑拆分;

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

可能是你真的想要什么。

+0

啊,这是个好主意。以分号分割要简单得多。我需要做的就是删除空格。谢谢! – 2012-01-12 23:24:32

+3

呃,猜猜我的例子中的“strip”是什么...... – 2012-01-13 07:38:59

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

{n}是 “重复n次”,如果你想 “12 - 13”

倍,

(\s+(\w*\.*\w*);){12,13}如果你想 “12+” 次

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