2011-06-14 44 views

回答

6

有可能在某些正則表達式庫的快捷方式,但你可以隨時...

b{3,}|c{3,}|d{3,}... 

一些庫,例如讓您使用匹配一個後面的參考,這可能是一個清潔劑...

(bcd...)\1{2,} 
+0

+1,將工作。儘管我的口味有點過於冗長! – 2011-06-14 01:27:40

+0

已更新,但它可能取決於您的lib ... – 2011-06-14 01:29:48

+0

作爲第一個回答此問題的人:) – anubhava 2011-06-14 02:08:16

0

您可以使用具有反參考的捕獲組ES。這將捕獲重複的符號:

/(
    ([\w])  ## second group is just one symbol 
    \2   ## match symbol found in second groups 
    \2+   ## match same symbol one or more times 
)/x    ## x is just to allow inner comments 

但並非所有的正則表達式引擎都支持反向引用。

15

嘗試這種情況:

([b-df-hj-np-tv-z])\1{2,} 

說明:

  • [b-df-hj-np-tv-z]都是輔音
  • \1是背面參照第一組(即,相同字符)
  • {2,}的意思是「2個或更多前面的術語」,使3或mor e共

經過測試,這工作。

+0

「http」或「type」被捕獲 – user455318 2011-06-14 01:31:08

+1

正如Andrew White指出的那樣;這不符合「BCD」? – Mikey 2011-06-14 01:31:15

+1

現在它不會匹配「bbb」它需要「bbbb」,因爲第一個匹配,然後後面的引用必須匹配3次以上。 – 2011-06-14 01:37:39

6

這可能是我能想到的做最短的正則表達式:

(?i)([b-z&&[^eiou]])\1\1+ 

它使用正則表達式字符類減法排除元音。
我不必提及「a」,因爲我開始的範圍從「b」。
使用(?i)使正則表達式不區分大小寫。

請參閱live demo

0

從答案較高[b-df-hj-np-tv-z])\1{2,}正則表達式有錯誤( 「Y」 是fogotten)

它應該是[b-df-hj-np-tv-xz])\1{2,}

+1

「Y」沒有被遺忘,在這種情況下,它只是一個輔音。 – Apollo 2017-04-19 16:00:58

+0

字母Y可以被認爲是元音和輔音。 [來自牛津詞典的證據](https://en.oxforddictionaries.com/explore/is-the-letter-y-a-vowel-or-a-consonant) – 2017-04-27 00:14:01