2011-06-14 5 views
12

से मेल खाने के लिए regex अभिव्यक्ति regex expression के साथ मैं कैसे पता लगा सकता हूं यदि व्यंजन तीन बार या अधिक बार दोहराया जाता है?व्यंजन

मेरा विचार tttool या likkke या likkkkke जैसे शब्दों का मिलान करने के लिए है

उत्तर

6

वहाँ लेकिन कुछ regex पुस्तकालयों में शॉर्टकट हो सकता है आप हमेशा कर सकते हैं ...

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

उदाहरण के लिए कुछ libs आप उपयोग कर से मिलान कर एक बैक रेफरेंस जो एक टैड क्लीनर हो सकता है ...

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

+1 कि काम करेंगे होना चाहिए है। हालांकि मेरे स्वाद के लिए थोड़ा सा वर्बोज़! –

+0

अपडेट किया गया, लेकिन यह आपके lib पर निर्भर हो सकता है ... –

+0

+1 इसका उत्तर देने वाले पहले व्यक्ति के लिए :) – anubhava

0

आप बैक-रेफरेंस के साथ कैप्चर समूह का उपयोग कर सकते हैं तों। यह प्रतीक दोहरा कब्जा होगा:

/(
    ([\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 

लेकिन सभी regexp इंजन वापस संदर्भ समर्थन करते हैं।

15

इस प्रयास करें:

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

स्पष्टीकरण:

  • [b-df-hj-np-tv-z] हैं सभी व्यंजन
  • \1 1 समूह को वापस संदर्भ (यानी ही चरित्र)
  • है {2,} का मतलब है "पिछले अवधि के 2 या अधिक", 3 या मोर बनाना ई

परीक्षण और यह काम करता है।

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

यह एक regex चरित्र वर्ग घटावको स्वरों को बाहर का उपयोग करता है:

+0

"http" या "टाइप" पकड़ा गया है – user455318

+1

जैसा कि एंड्रयू व्हाइट नीचे बताया गया है; यह मैच "बीसीडी" नहीं होगा? – Mikey

+1

अब यह "बीबीबी" से मेल नहीं खाएगा क्योंकि इसे पहले से मेल खाने के बाद "बीबीबीबी" की आवश्यकता है और फिर बैक रेफरेंस 3 से अधिक बार मेल खाना चाहिए। –

6

यह कम से कम regex मैं यह करने के बारे में सोच सकता है के बारे में है।
मुझे "ए" का उल्लेख नहीं करना पड़ा क्योंकि मैंने "बी" से सीमा शुरू की थी।
(?i) का उपयोग रेगेक्स केस असंवेदनशील बनाता है।

live demo देखें।

0

जवाब उच्च [b-df-hj-np-tv-z])\1{2,} से regex एक गलती ("y" fogotten है)

यह [b-df-hj-np-tv-xz])\1{2,}

+1

"Y" भूला नहीं किया गया था, उस मामले में यह सिर्फ एक व्यंजन है। – Apollo

+0

पत्र Y दोनों एक स्वर और व्यंजन के रूप में माना जा सकता है। [ऑक्सफोर्ड डिक्शनरी से प्रमाण] (https://en.oxforddictionaries.com/explore/is-the-letter-y-a-vowel-or-a-consonant) –

संबंधित मुद्दे