स्ट्रिंग्स में डबल बैकस्लैश के साथ सिंगल बैकस्लैश को बदलना
जब "\something\" जैसी स्ट्रिंग को "\" में बदलने के लिए रिप्लेसऑल का उपयोग करने का प्रयास किया जाता है कुछ\", डेवलपर्स को अक्सर त्रुटियों का सामना करना पड़ता है। ReplaceAll('\', '\\') विधि का उपयोग करने के सामान्य दृष्टिकोण के परिणामस्वरूप अपवाद होता है 'java.util.regex.PatternSyntaxException: इंडेक्स 1 के पास अप्रत्याशित आंतरिक त्रुटि'। ऐसा इसलिए होता है क्योंकि बैकस्लैश () कैरेक्टर को स्ट्रिंग्स और रेगुलर एक्सप्रेशन दोनों में एस्केप कैरेक्टर के रूप में माना जाता है। इसे संबोधित करने के लिए, इसे दोगुना करके रेगुलर एक्सप्रेशन में बैकस्लैश से बचें:
string.replaceAll("\\\\", "\\\\\\\\");
हालाँकि, यहाँ रेगेक्स हमेशा आवश्यक नहीं होता है। चूँकि हम केवल वर्ण-दर-चरित्र प्रतिस्थापन करना चाहते हैं, इसलिए String#replace() पर्याप्त हो सकता है:
string.replace("\\", "\\\\");
ध्यान दें कि यदि स्ट्रिंग जावास्क्रिप्ट संदर्भ में उपयोग के लिए है, तो वर्णों की एक विस्तृत श्रृंखला को कवर करने के लिए StringEscapeUtils#escapeEcmaScript() का उपयोग करना अधिक उपयुक्त हो सकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3