डिलीमिटर संरक्षित के साथ स्ट्रिंग्स को विभाजित करना
अद्वितीय डिलीमीटर के एक सेट द्वारा सीमांकित मल्टीलाइन स्ट्रिंग्स के साथ काम करते समय, स्ट्रिंग को विभाजित करना चुनौतीपूर्ण हो सकता है जबकि स्वयं परिसीमनकों को भी संरक्षित किया जा रहा है। मानक स्ट्रिंग.स्प्लिट विधि केवल निर्दिष्ट सीमांकक के आधार पर स्ट्रिंग को अलग करती है, सीमांकक वर्णों को हटा देती है।
लुकहेड और लुकबिहाइंड का उपयोग करना
जावा डेवलपमेंट किट (जेडीके) लुकआहेड और लुकबैक का उपयोग करके एक समाधान प्रदान करता है, जो नियमित अभिव्यक्तियों की विशेषताएं हैं जो आपको अंतिम में शामिल किए बिना पात्रों को मिलान और कैप्चर करने की अनुमति देती हैं। परिणाम।
यहां लुकआगे और लुकबैक का उपयोग करके एक उदाहरण दिया गया है:
String input = "(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)";
String[] splitWithDelimiter = input.split("((?पैटर्न:
- (?
- (?=;) अर्धविराम से ठीक पहले एक खाली वर्ण से मेल खाता है (आगे देखें).
- ((?
आउटपुट:
[Text1, ;, DelimiterA, ;, Text2, ;, DelimiterC, ;, Text3, ;, DelimiterB, ;, Text4]
यह परिणाम स्ट्रिंग को विभाजित करते समय सीमांकक को बरकरार रखने की आवश्यकता को पूरा करते हुए, पाठ के साथ सीमांकक को संरक्षित करता है।
पठनीयता में सुधार
नियमित अभिव्यक्तियों को पढ़ना और समझना कभी-कभी मुश्किल हो सकता है। पठनीयता बढ़ाने के लिए, आप एक वर्णनात्मक नाम के साथ एक वेरिएबल बना सकते हैं जो नियमित अभिव्यक्ति पैटर्न का प्रतिनिधित्व करता है। उदाहरण के लिए:
static final String WITH_DELIMITER = "((?प्लेसहोल्डर्स और जावा के स्ट्रिंग.फॉर्मेट का उपयोग करके, आप रेगुलर एक्सप्रेशन को अधिक सहज और व्याख्या करने में आसान बना सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3