重复一段正则表达式?

Joe*_*yga 15 python regex

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

我想重复的模式是

\s+(\w*\.*\w*);
Run Code Online (Sandbox Code Playgroud)

这是正则表达式(缩短)

^\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以匹配一个模式一定次数没有像这样的复制粘贴?这些部分中的每一部分都对应于我需要的所有数据列.我顺便使用Python.谢谢!

joe*_*ish 43

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

{n}是"重复n次"

如果你想"12 - 13"次,

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

如果你想要"12+"次,

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

  • ... 所以 `(...){12}` 将封闭的模式 `...` 重复 12 次;刚刚添加了这个以节省(相当长的)模式与原始问题的比较。 (2认同)

Ano*_*sse 6

如何使用:

(\s+(\w*\.*\w*);)*
Run Code Online (Sandbox Code Playgroud)

你找到了这个findall方法吗?还是考虑拆分;

map(lambda x: x.strip(), s.split(";"))
Run Code Online (Sandbox Code Playgroud)

可能是你真正想要的.