2016-09-19 127 views
4

我想寫一個函數,將搜索一個字符串(所有數字,0-9)4個或更多重複字符的變量序列。Python:搜索一個字符串的重複字符變量

下面是一些例子輸入:

「14888838」:該函數將返回True,因爲它找到了 「8888」。

「1111」:該函數將返回True,因爲它找到了「1111」。

「1359」:函數將返回False,因爲它沒有在一行中找到4個重複字符。

我的第一個傾向是使用re,所以我認爲模式:「[0-9] {4}」可以工作,但只要它在一行中找到任意四個數字,就會返回true,無論它們是否是否匹配。

無論如何,在此先感謝您的幫助。

戴夫

回答

4

你可以指望capturingbackreferences

if re.search(r'(\d)\1{3}', s): 
    print(s) 

這裏,(\d)捕捉手指進入第1組和\1{3}比賽出現3次捕獲的價值立即對的,正確的數字。

regex demoPython demo

import re 
values = ["14888838", "1111", "1359"] 
for s in values: 
    if re.search(r'(\d)\1{3}', s): 
     print(s) 

輸出:

14888838 
1111 
+0

同意,但是你應該避免'input'因爲它是Python中的內置函數3 –

+0

謝謝!這就是訣竅! :) –

+1

再次感謝Wiktor,我接受了它。 :) –