2011-06-29 44 views
7

我正在嘗試使用正則表達式在字符串中查找三個或更多相同的字符。舉例來說: 'hello'不會匹配 'ohhh'會。匹配python中的3個或更多相同的字符

我試着做這樣的事情:

re.compile('(?!.*(.)\1{3,})^[a-zA-Z]*$') 
re.compile('(\w)\1{5,}') 

但既不似乎工作。

+0

你的第二種方法有什麼問題? (它會匹配至少6個字符,但基本上它應該工作) – stema

+0

連續三個相同的字符,或只是在字符串中的任何地方重複三次相同的字符?即「hohoho」是否匹配? – Spudley

+0

第二種方法確實有效,儘管稍微修改了r'(\ w)\ 1 {2,}'。我使用.match而不是.search,這就是爲什麼我沒有看到我期望的結果。 – Adam

回答

10

(\w)\1{2,}是你正在尋找的正則表達式。

在Python它可以,如果你正在尋找相同的字符連續三次被引用像r"(\w)\1{2,}"

2

,你可以這樣做:如果你想找到相同的字符

(\w)\1\1 

3倍字符串中的任何地方,你需要把該表達的部分之間的點和一個星號上面,像這樣:

(\w).*\1.*\1 

.*匹配任何數字的任何字符,因此該表達式應匹配任何具有任何單個字符且出現三次或更多次的字符串,並且它們之間具有任意數量的任何字符。

希望有所幫助。

相關問題