मैं एक स्ट्रिंग 'क्लीन-अप' फ़ंक्शन लिखने की कोशिश कर रहा हूं जो केवल अल्फान्यूमेरिक वर्णों, साथ ही कुछ अन्य, जैसे अंडरस्कोर, अवधि और माइनस (डैश) वर्ण की अनुमति देता है।क्या आप अंडरस्कोर के साथ अवांछित वर्णों को प्रतिस्थापित करने के लिए RegEx बना सकते हैं?
वर्तमान में हमारा फ़ंक्शन स्रोत स्ट्रिंग के सीधे चार पुनरावृत्ति का उपयोग करता है, लेकिन मैं इसे रीजएक्स में रूपांतरित करने की कोशिश कर रहा हूं क्योंकि जो मैंने पढ़ा है, वह बहुत साफ और अधिक प्रदर्शनकारी है (जो मुझे पीछे की ओर लगता है सीधे पुनरावृत्ति, लेकिन जब तक मैं एक कामकाजी RegEx प्राप्त नहीं करता तब तक मैं इसे प्रोफ़ाइल नहीं कर सकता।)
समस्या मेरे लिए दो गुना है। एक, मैं जानता हूँ कि निम्नलिखित regex ...
[a-zA-Z0-9]
... अक्षरांकीय वर्णों की एक सीमा से मेल खाता है, लेकिन कैसे मैं भी अंडरस्कोर, अवधि और तापमान शून्य से चरित्र में शामिल हैं? क्या आप उन्हें '\' चरित्र से बचते हैं और उन्हें बाकी के साथ ब्रैकेट के बीच रखते हैं?
दूसरा, किसी भी चरित्र के लिए जो मैच का हिस्सा नहीं है (यानी अन्य विराम चिह्न जैसे '?') हम इसे अंडरस्कोर से बदलना चाहते हैं।
मेरी सोच वांछित पात्रों की एक श्रृंखला पर मेल खाना है, हम एक ऐसे चरित्र पर मेल खाते हैं जो वांछित सीमा में नहीं है, फिर उसे प्रतिस्थापित करें। मुझे लगता है कि के लिए रेगुलर एक्सप्रेशन से इस तरह कोष्ठक के बीच पहली चरित्र के रूप में कैरेट शामिल करने के लिए है ...
[^a-zA-Z0-9]
कि सही दृष्टिकोण है?
Regex.Replace() विधि क्या आप – terrybozzio
जरूरत है मैं लगा कि, लेकिन कृपया देखें मेरा प्रश्न, या इससे संबंधित दो प्रश्न। – MarqueIV
आप अपनी चरित्र कक्षा को बदलना चाहते हैं। अर्थात। '[^ a-zA-Z0-9] ', जो _not_ अल्फान्यूमेरिक है जो सब कुछ मेल खाएगा। –