2011-03-23 23 views
3

我知道這可能是在沒有正則表達式的情況下完成的,但我寧願讓解決方案比hackjob代碼塊簡潔優雅。確定是否有任何一個字符在某一行中重複了至少指定的次數

我期望完成的是確定是否有任何字符在非預定義長度的字符串中至少連續X次重複。重複閾值X可以被硬編碼,因爲它將被使用的代碼不會有太大的變化。重複的人物本身並不重要,我只在乎知道這種重複是否存在。

例如,如果將閾值設定爲4:

aaaabcd = Match 
aaabbcd = No Match 
abbbbcd = Match 
aabaaad = No Match 
aAaAbcd = No Match 

如果重複閾值被設置爲1時,任何輸入非空輸入字符串應該匹配,並且如果重複閾值設定爲長於輸入字符串,它應該不匹配。

我有一種感覺,解決方案將涉及回參考,但我不熟悉他們自己找出解決方案。

如果有人很好奇,我將要實現的語言將是PHP,因此歡迎使用代碼片段!

回答

3

您可以使用正則表達式:

(.)\1{3} 

可以在PHP作爲:

if(preg_match('/(.)\1{3}/',$input)) { 
    echo "$input matches\n"; 
} 

Ideone Link

+0

好吧好吧,似乎這樣的伎倆。所以我猜想基本模式是如果我需要X的重複閾值,它會是'/(。)\ 1 {X-1} /'? – 2011-03-23 20:22:06

+0

@千瓦:這是正確的。 – codaddict 2011-03-24 04:14:14

相關問題