簡體   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