2010-09-25 16 views
9

मेरे पास इस तरह php में एक स्ट्रिंग है।PHP नियमित अभिव्यक्ति बार-बार वर्ण

$ str = "ABCCCDE" // चरित्र सीसीसी अधिक से अधिक 2 बार

मैं अगर वहाँ नियमित अभिव्यक्ति का उपयोग कर अधिक से अधिक 2 बार है किसी भी वर्ण दोहराए जानना चाहते दोहराया शामिल हैं।

अग्रिम धन्यवाद

+2

लगातार अनुक्रम? – Gumbo

उत्तर

18
if (preg_match('/(.)\\1{2}/', $str)) 
    echo "Has 3 same characters consecutively!"; 

(.) किसी भी चरित्र (नई लाइनों को छोड़कर) से मेल खाएगा, और \1 एक पैटर्न सबसे पहले मिलने वाला समूह के रूप में ही की भरपाई कर देंगे - चरित्र हम सिर्फ है इस मामले में, मिलान नहीं हुआ। तो यह रेगेक्स लगातार 3 अक्षरों से मेल खाएगा।

+0

स्ट्रिंग "abccde" होने पर यह 1 लौटाता है। इसे केवल 1 लौटा देना चाहिए, दो बार – Novice

+0

@ शाहिद से दोहराया गया चरित्र है: अब और नहीं। – kennytm

3

आप उपयोग कर सकते हैं:

'/(.)\1\1/' 

उदा .:

preg_match('/(.)\1\1/', $str, $matches); 
संबंधित मुद्दे