आप बहुत करीब वास्तव में कर रहे हैं:
if(preg_match('/^user[0-9]{1,8}$/', $string)){
"स्ट्रिंग के शुरू में से मेल खाना चाहिए" सामने सभी तरह, "उपयोगकर्ता" के बाद किया जाना चाहिए के लिए लंगर शाब्दिक; फिर आप वर्ण सेट [0-9]
और गुणक {1,8}
निर्दिष्ट करते हैं। अंत में, आप "स्ट्रिंग के अंत में मिलान होना चाहिए" एंकर के साथ समाप्त हो जाते हैं।
अपने मूल अभिव्यक्ति पर कुछ टिप्पणियां:
^
एक स्ट्रिंग की शुरुआत से मेल खाता है, तो यह अभिव्यक्ति के अंदर कहीं और इसे लिखने लेकिन शुरुआत अपेक्षित परिणाम
+
है उत्पन्न नहीं करेंगे एक गुणक; {1,8}
एक भी है, लेकिन अभिव्यक्ति के बाद केवल एक गुणक का उपयोग किया जा सकता है
- जब तक आप अभिव्यक्ति में प्राप्त संख्याओं का उपयोग करने का इरादा नहीं रखते हैं, तो आपको कोष्ठक की आवश्यकता नहीं है।
बीटीडब्ल्यू, [0-9]
के बजाय आप \d
का भी उपयोग कर सकते हैं। यह एक स्वत: चरित्र समूह है कि नियमित अभिव्यक्ति को घटा देती है, हालांकि यह विशेष रूप से एक को बचाने नहीं करता है सब बहुत अधिक वर्ण ;-)
स्रोत
2012-06-12 15:23:47