मुझे इस कथन पर "खराब संकलन निरंतर मूल्य" मिलता है।खराब संकलन निरंतर मान
Regex objCheckNumber = new Regex("^(\d){4}$");
मैं बस यह देखने के लिए एक और स्ट्रिंग जांचने के लिए इसे सेट करना चाहता हूं कि यह मान 4 अंक है या नहीं।
मुझे इस कथन पर "खराब संकलन निरंतर मूल्य" मिलता है।खराब संकलन निरंतर मान
Regex objCheckNumber = new Regex("^(\d){4}$");
मैं बस यह देखने के लिए एक और स्ट्रिंग जांचने के लिए इसे सेट करना चाहता हूं कि यह मान 4 अंक है या नहीं।
सी # पलायन अनुक्रम के रूप में \d
व्याख्या करने के लिए कोशिश कर रहा है, और \d
नहीं एक वैध एस्केप अनुक्रम (लेकिन \n
और \t
है , उदाहरण के लिए)। आप इसे से बचने के लिए बैकस्लैश को दोगुना कर सकते हैं ("^(\\d){4}$"
), या आप निरंतर स्ट्रिंग को एट-साइन के साथ उपसर्ग कर सकते हैं: @"^(\d){4}$"
।
सी # एक बच निकलने वाले चरित्र के रूप में उपयोग करता है। आपको \
से \\
को डबल करने की आवश्यकता है।
वैकल्पिक रूप से, दोहरे-उद्धरण से पहले एक @ चरित्र जगह:
new Regex(@"^(\d){4}$")
\ डी से बच निकलता है जिसका मतलब एकल संख्यात्मक चरित्र है। {4} के साथ वह चार पंक्तियों की तलाश में है। –
@pasasik - हाँ, \ d का रेगेक्स इंजन के लिए विशेष अर्थ है, लेकिन आपको उस स्ट्रिंग को पहले रेगेक्स इंजन में प्राप्त करना होगा। इसे दोगुना करने या @ का उपयोग करने के बिना, सी # कंपाइलर सोचता है कि आप 'विशेष' चरित्र (जैसे \ t या \ n) के रूप में \ d को समझते हैं और इसे संभालने के लिए कोशिश करता है (और विफल रहता है)। –
मैं रेगेक्सहेरो में परीक्षण कर रहा हूं: http://regexhero.net/tester/ और ... jeesh। मैं अपनी गलती देखता हूं। (डाउनवोट बाइनरीकोडर के बारे में खेद है, तो मुझे इसे उलटने नहीं देगा ...) –
-1: \ d = सी #/एनईटी रेगेक्स –
धन्यवाद में एकल संख्यात्मक अंक, पूरी तरह से इसे अनदेखा कर दिया क्योंकि मैं इसके बारे में बहुत कुछ सोच रहा था regex और यह एक स्ट्रिंग duh है। – PositiveGuy
वूप्स, psasiks टिप्पणी करने का मतलब नहीं था। – PositiveGuy