我知道這可能是非常基本的,但我試圖創建一個正則表達式,它只會匹配一組字符的某個倍數。例如,re.findall(表達式'aaaa')將返回'aaaa',但re.findall(表達式'aaa')將返回'aa',其中表達式是涉及對aa的一些正則表達式。如果整個字符串是'aa'的整數倍,它將只返回整個字符串。有任何想法嗎?python正則表達式匹配一個表達式的倍數
1
A
回答
1
只需使用(aa)+
。 (對於findall,你會想要使用非捕獲組,所以(?:aa)+
。)
>>> re.findall('(?:aa)+', 'aa')
['aa']
>>> re.findall('(?:aa)+', 'aaaa')
['aaaa']
>>> re.findall('(?:aa)+', 'aaaaa')
['aaaa']
+0
謝謝我認爲這就是我正在尋找的。我不知道捕捉和不捕捉的組。 – rottentomato56 2012-08-04 21:46:14
0
嘗試類似例如(?:(?:expression){3})+
查找三個表達式的所有倍數。如果表達更短,您也可以按照自己的意願經常寫。
如果您想匹配確切的重複,請嘗試如(?:(expression)\1{2})+
爲三的倍數。請注意,如果表達式不重要,則可能需要回溯,因此可能會很慢。
相關問題
- 1. 正則表達式模式匹配一個數學表達式
- 2. Python - 正則表達式,多個匹配
- 3. Python正則表達式 - 模式匹配
- 4. 正則表達式匹配一個特定的表達格式
- 5. 匹配到正則表達式中的另一個表達式
- 6. 奇怪的正則表達式(正則表達式)匹配!不匹配數字
- 7. 正則表達式(正則表達式)模式匹配
- 8. 正則表達式匹配多表達
- 9. Python的正則表達式匹配
- 10. Python的正則表達式匹配{}
- 11. Python的正則表達式匹配## ##
- 12. Python中的正則表達式匹配
- 13. Python的正則表達式不匹配
- 14. Python的URL匹配(正則表達式)
- 15. Python中的正則表達式匹配
- 16. Python的正則表達式匹配
- 17. Python的 - 非正則表達式匹配
- 18. 一個正則表達式匹配由%
- 19. 正則表達式 - 匹配一個字
- 20. 正則表達式匹配
- 21. 正則表達式匹配
- 22. 正則表達式匹配%
- 23. 正則表達式匹配
- 24. 正則表達式匹配
- 25. 正則表達式 - 匹配
- 26. 正則表達式匹配
- 27. 匹配正則表達式
- 28. 正則表達式 - 匹配
- 29. 正則表達式匹配
- 30. 正則表達式匹配
對於您可能在[此處](http://extract-web-data.com/regex-expressions/#Groups)閱讀的非捕獲組。 – 2012-08-05 17:35:09