2017-04-01 121 views
-1

我已經搜索和搜索,但我找不到任何完全像我需要的東西。我有一個代碼:添加正則表達式來檢測重複3個字符的單詞?

$repeater = "pompom"; 

    if (preg_match('/([a-zA-Z])\1{3}/', $repeater)) { 
    echo "Yes, $repeater does repeat 3 characters.<br>"; 
} 
else { 
    echo "No, $repeater does not repeat 3 characters.<br>"; 
} 

(我可以勉強理解正則表達式,因爲它是...所以不理我目前正則表達式..它只是我開始打字隨機性的混合物)
無論如何,我需要正則表達式代碼返回單詞
真正
絨球
grugru
mopmop
康康舞
等等

並返回話
coocoo
daadaa
allall
giigii

正則表達式必須檢測並返回任何字有3個不同的字符重複不止一次在該字
這必須適用於具有不一定按照順序排列的字符的單詞。我找到了解決辦法。諸如「cooo」或「pooool」之類的詞不是我需要應用此正則表達式的。注意:這必須返回True僅適用於單詞中有3個或更多不同字母的單詞重複多次。如pompom ..
對於像coocoo這樣的單詞,這應該返回false,因爲單詞中只有2個不同的字母。

再次,請忽略我目前的正則表達式,這正是我在決定尋求幫助時所擁有的。我嘗試了大概200種不同的方法,當然都是錯誤的:]。
任何幫助都不錯,也許我們可以一起解決這個問題,我只需要一些想法來反彈。

+1

爲了幫助你瞭解正則表達式:https://regexone.com/ – Neil

+0

我將檢查出來現在@nfn尼爾,感謝 –

+0

我也回答了這個問題。這只是我最喜歡的網站。 – Neil

回答

1

下面的正則表達式將執行的要求:

^((.)(?!\2)(.)(?!\2)(?!\3).)\1$ 

https://regex101.com/r/eHKzWB/3

+0

我需要這個功能來處理重複字母不按順序或至少也不是按順序排列的單詞。 @nfn neil –

+0

我想我可能已經更新它,因爲你上次評論。繼續並刷新。 – Neil

+0

好吧,我刷新了,它仍然不是我所期待的。所以,例如,該方法允許單詞「booboo」返回爲真。 「booboo」只有兩個不同的字母。我只需要帶有3個或更多不同字母的單詞,例如「絨球」只能返回爲真,並且只有三個字母重複(至少),但是具體到3個字母也是可以的。這是我的錯誤,我需要在我的文章中更具體,將更新! –