[英]repeating a section of a regular expression?
我必须解析电子表格的文本转储。 我有一个正则表达式可以正确解析每一行数据,但它很长。 它基本上只是匹配某个模式 12 或 13 次。
我要重复的模式是
\s+(\w*\.*\w*);
这是正则表达式(缩短)
^\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);
有没有办法在不复制粘贴的情况下匹配一定次数的模式? 这些部分中的每一个都对应于我需要的所有数据列。 顺便说一下,我正在使用 Python。 谢谢!
(\\s+(\\w*\\.*\\w*);){12}
{n}
是“重复 n 次”
如果你想要“12 - 13”次,
(\\s+(\\w*\\.*\\w*);){12,13}
如果你想要“12+”次,
(\\s+(\\w*\\.*\\w*);){12,}
如何使用:
[x.group() for x in re.finditer(r'(\s+(\w*\.*\w*);)*', text)]
你找到findall
方法了吗? 或者考虑在;
?
map(lambda x: x.strip(), s.split(";"))
可能是你真正想要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.