2012-12-20 17 views
5

मेरी सी # आवेदन में, मैं तार को मान्य करने के लिए सुनिश्चित करें कि वे केवल शामिल निम्नलिखित की जरूरत है:Regex मान्य करने के लिए एक स्ट्रिंग है कि केवल 0 - 9, +, #, *, [और]

  • 0 - 9
  • +
  • #
  • *
  • [
  • ]

जब मेरा उपयोगकर्ता DataGridView नियंत्रण के सेल में एक स्ट्रिंग फ़ील्ड संपादित करता है, तो मुझे मान को सत्यापित करने की आवश्यकता होती है। मेरे CellValidating ईवेंट हैंडलर वर्तमान में इस तरह दिखता है:

if (!Regex.IsMatch(e.FormattedValue.ToString(), @"\A\b[0-9]+\b\Z")) 
{ 
    // notify the user that the string is invalid and cancel validation 
    e.Cancel = true; 
} 

इस के लिए 0 से काम करने लगता है - 9, लेकिन मैं अभी तक एक regex काम कर रहे हैं कि सभी अक्षरों से परे मैं जरूरत भी शामिल पाने के लिए किया है। मैंने मौजूदा रेगेक्स में एक समय में एक मेटाएक्टेक्टर जोड़ने की कोशिश की लेकिन यह काम नहीं करता है। उदाहरण के लिए ...

if (!Regex.IsMatch(e.FormattedValue.ToString(), @"\A\b[0-9#]+\b\Z")) 

... जैसा कि मैंने सोचा था # की अनुमति नहीं देता है। इससे बचने से कोई फर्क नहीं पड़ता। क्या कोई मेरे लिए इस पर कुछ प्रकाश डाल सकता है?

+1

शब्द सीमा मार्कर ('\ b') समस्याओं के कारण, क्योंकि आपके अक्षरों से परे का सबसे एक" शब्द "के भाग के रूप में शामिल नहीं किया जा रहे हैं। – mellamokb

+0

स्पष्टीकरण mellamokb के लिए धन्यवाद। – user685869

उत्तर

7

उपयोग इस regex ^[0-9+#*\[\]]+$

+0

त्वरित उत्तर के लिए बहुत बहुत धन्यवाद। – user685869

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

  • कोई संबंधित समस्या नहीं^_^