2008-12-02 12 views
16

के बाद मैं निम्नलिखित पैटर्न के लिए एक regex की जरूरत है:रेगुलर एक्सप्रेशन मिलान का अल्फा चरित्र 4 अक्षर या अंक

  • 5 वर्ण (अल्फा और संख्यात्मक, और कुछ नहीं) के कुल।

  • पहला वर्ण कोई अक्षर (A, B, या केवल C)

  • शेष 4 अक्षर संख्या या अक्षर हो सकता है किया जाना चाहिए।

Clarifcation: पहले अक्षर केवल A, B, या C हो सकता है।

उदाहरण: नया "स्पष्टीकरण" के कारण :)

^[A-C][a-zA-Z0-9]{4}$ 

गरर ... संपादित regex:

  • A1234 वैध
  • D1234 अमान्य
+0

यह क्यों मतदान किया गया था? –

+0

मुझे नहीं था, लेकिन मुझे लगता है कि यह खराब शीर्षक था। – Whytespot

+1

@ टिमोथी - यह नहीं कि मैं इसके साथ सहमत हूं, लेकिन ऐसे लोग हैं जो "सरल" प्रश्नों को वोट देते हैं। व्यक्तिगत रूप से मैं नहीं करता, क्योंकि किसी भी समय हर कोई नौसिखिया था। –

उत्तर

35

संपादित है संपादित करें: उपरोक्त Regex अंग्रेजी में व्याख्या करने के लिए ...

^ और $ मतलब है "खत्म करने के लिए शुरू से ही" (यह है कि पूरे स्ट्रिंग पूरी तरह से मेल खाना चाहिए सुनिश्चित करता है)

[A-C] का अर्थ है "मैच या तो A, B, या C"

[a-zA-Z0-9]{4} का अर्थ है "मैच 4 छोटे अक्षरों, अपर केस अक्षर, या संख्या "की तर्ज पर

+0

एनबी। यह केवल इस पैटर्न से मेल खाएगा यदि यह एक अलग रेखा पर है। –

+0

@mats - या एक अलग चर में। –

+0

अलग पंक्ति टिप्पणी से आपका क्या मतलब है? यह regex सही है :) –

6

कुछ:

[A-C][A-Za-z0-9]{4} 

यदि आप नियमित अभिव्यक्ति से अपरिचित हैं और इन तरह के सरल regexs करने की कोशिश करते हैं, तो मैं http://regexlib.com/CheatSheet.aspx पर एक नज़र डालने की सलाह दूंगा।

ऑनलाइन रेगेक्स परीक्षण ऐप्स भी हैं: http://regexlib.com/RETester.aspx जो आपको किसी भी कोड को लिखे बिना अपने regexes का परीक्षण करने में सक्षम बनाता है।

2

क्या आपका मतलब है कि पहला अक्षर ए, बी या सी होना चाहिए? या यह कोई पत्र हो सकता है?

यदि यह ए, बी, या सी (केस संवेदनशील) होना है, तो यह नियमित अभिव्यक्ति होगी।

[A-C][a-zA-Z0-9]{4} 

अन्यथा, यहां अन्य उत्तरों पर्याप्त हैं।

0

मामले में यह पर्ल regexps नहीं के बारे में हम बात कर रहे हैं, कुछ कट और पेस्ट की जरूरत है:

[ABC][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9] 

मैं कट-और-चिपकाया "[एक-zA-Z0-9]" चार बार।

+0

रेगेक्स नीचे जावास्क्रिप्ट और .NET के लिए काम करता है ... क्या आप कह रहे हैं कि पर्ल {4} का समर्थन नहीं करता है, या आप कह रहे हैं कि अन्य भाषाएं नहीं हैं? –

+0

@ टिमोथी - पर्ल {count} का समर्थन करता है। एक समय में, नियमित grep नहीं था लेकिन egrep किया था। इसलिए अलग-अलग भाषाओं में "नियमित अभिव्यक्ति" के विभिन्न संस्करण होते हैं, भले ही वे grep, egrep या perl (या कुछ और) से कॉपी किए गए हों। –

+0

धन्यवाद - मुझे पर्ल की रेगेक्स गहराई से नहीं पता, इसलिए मैं इस जवाब के कारण बस इसके बारे में सोच रहा था। –

0

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

\<[ABC]\([a-zA-Z0-9]{4}\)\> 
1

यह जवाब सही है, लेकिन मैं जोड़ने के लिए है कि आप इसे निम्नलिखित के साथ एक सा छोटा कर सकते हैं चाहता था।

^[A-C]\w{4}$ 

\ w का अर्थ है कोई अल्फा न्यूमेरिक वर्ण।

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