2011-01-13 13 views

उत्तर

69

इस नियमित अभिव्यक्ति केवल दस अंक मिलान करने के लिए उपयोग:

@"\d{10}" 

नोट यह भी पाएंगे कि:

@"^\d{10}$" 

की लगातार दस एक स्ट्रिंग, उपयोग में कहीं भी अंक एक दृश्य को खोजने के लिए 11 अंक संख्या के पहले 10 अंक। बिल्कुल 10 लगातार अंक के लिए स्ट्रिंग में कहीं भी खोज करने के लिए नहीं है और अधिक आप नकारात्मक lookarounds उपयोग कर सकते हैं:

@"(?<!\d)\d{10}(?!\d)" 
+0

न्यूबनेस के लिए खेद है, लेकिन "नकारात्मक लुकराउंड" क्या है? – sova

+1

@ सोवा: आप यहां लापरवाह दावे के बारे में पढ़ सकते हैं: http://www.regular-expressions.info/lookaround.html। अभिव्यक्ति का अर्थ है अंकों के बिना 10 अंकों - '(?

+0

ग्रेट, धन्यवाद .. वास्तव में मैं देख रहा था –

3

इस का उपयोग करें:

\d{10} 

मुझे आशा है कि यह मदद करता है।

6

निम्नलिखित पैटर्न का उपयोग करें।

^\d{10}$ 
3
\d{10} 

मुझे विश्वास है कि यह

3

यह कैसे लागू करने के लिए एक उदाहरण करना चाहिए:

public bool ValidateSocialSecNumber(string socialSecNumber) 
{ 
    //Accepts only 10 digits, no more no less. (Like Mike's answer) 
    Regex pattern = new Regex(@"(?<!\d)\d{10}(?!\d)"); 

    if(pattern.isMatch(socialSecNumber)) 
    { 
     //Do something 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

तुम भी उदा किसी अन्य तरीके से यह किया है हो सकता है Match का उपयोग करके और उसके बाद पैटर्न मिलान के चारों ओर एक कोशिश-पकड़ ब्लॉक लपेटें। हालांकि, अगर गलत इनपुट अक्सर दिया जाता है, तो अपवाद फेंकना काफी महंगा होता है। इस प्रकार, मैं कम से कम सरल मामलों में उपर्युक्त तरीके पसंद करता हूं।

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