繁体   English   中英

python正则表达式匹配表达式的倍数

[英]python regex matching a multiple of an expression

我知道这可能很基本,但是我正在尝试创建一个仅与一组字符的某些倍数匹配的正则表达式。 例如,re.findall(expression,'aaaa')将返回'aaaa',但是re.findall(expression,'aaa')将返回'aa',其中expression是一些涉及对aa的正则表达式。 仅当整个字符串是“ aa”的某个整数倍时,它才会返回整个字符串。 有任何想法吗?

只需使用(aa)+ (对于findall,您将要使用非捕获组,因此(?:aa)+ 。)

>>> re.findall('(?:aa)+', 'aa')
['aa']
>>> re.findall('(?:aa)+', 'aaaa')
['aaaa']
>>> re.findall('(?:aa)+', 'aaaaa')
['aaaa']

尝试使用例如(?:(?:expression){3})+来查找表达式三个的所有倍数。 如果表达式较短,则也可以根据需要多次编写。

如果要匹配精确的重复项,请尝试使用例如(?:(expression)\\1{2})+作为3的倍数。 请注意,如果表达式不平凡,则可能需要回溯,因此速度可能很慢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM