"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > रेगुलर एक्सप्रेशन के साथ मल्टीलाइन टेक्स्ट ब्लॉक कैसे कैप्चर करें?

रेगुलर एक्सप्रेशन के साथ मल्टीलाइन टेक्स्ट ब्लॉक कैसे कैप्चर करें?

2024-11-03 को प्रकाशित
ब्राउज़ करें:500

How to Capture Multiline Text Blocks with Regular Expressions?

मल्टीलाइन टेक्स्ट ब्लॉक्स के मिलान के लिए नियमित अभिव्यक्ति

कई पंक्तियों तक फैले पाठ का मिलान नियमित अभिव्यक्ति निर्माण में चुनौतियां पेश कर सकता है। निम्नलिखित उदाहरण पाठ पर विचार करें:

some Varying TEXT

DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF
[more of the above, ending with a newline]
[yep, there is a variable number of lines here]

(repeat the above a few hundred times)

लक्ष्य दो घटकों को कैप्चर करना है: "कुछ भिन्न पाठ" भाग और अपरकेस पाठ की सभी बाद की पंक्तियाँ, खाली पंक्ति को छोड़कर।

गलत दृष्टिकोण:

इस समस्या को हल करने के लिए कुछ गलत तरीकों में शामिल हैं:

  • लाइनफीड से मिलान करने के लिए ^ और $ एंकर का उपयोग करना। मल्टीलाइन मोड में, ^ नई लाइनों के बाद की स्थितियों से मेल खाता है और $ नई लाइनों से पहले की स्थितियों से मेल खाता है।
  • समाधान:

निम्न नियमित अभिव्यक्ति वांछित घटकों को सही ढंग से कैप्चर करती है:^(. )\n((?:\n. ) )

यहां इसके घटकों का विवरण दिया गया है:

^(. )\n((?:\n. ) )
^ पंक्ति की शुरुआत से मेल खाता है।

(. ) समूह 1 में "कुछ भिन्न पाठ" भाग को कैप्चर करता है।
  • \n एक न्यूलाइन कैरेक्टर से मेल खाता है।
  • ((?:\n. ) ) अपरकेस टेक्स्ट की सभी बाद की पंक्तियों को समूह 2 में कैप्चर करता है। ?: गैर-कैप्चरिंग समूह निर्माण इन पंक्तियों को रोकता है व्यक्तिगत समूहों के रूप में कैप्चर किया जा रहा है।
  • पुनरावृत्ति ऑपरेटर यह सुनिश्चित करता है कि अपरकेस टेक्स्ट की कम से कम एक पंक्ति मौजूद है।
  • उपयोग:

पायथन में इस रेगुलर एक्सप्रेशन का उपयोग करने के लिए, आप निम्नलिखित कोड का उपयोग कर सकते हैं:

import re पैटर्न = re.compile(r"^(. )\n((?:\n. ) )", re.MULTILINE)

फिर आप एक स्ट्रिंग में मिलान खोजने के लिए मैच() विधि का उपयोग कर सकते हैं :
import re

pattern = re.compile(r"^(. )\n((?:\n. ) )", re.MULTILINE)
मिलान = पैटर्न.मिलान(पाठ) यदि मेल खाता है: टेक्स्ट1 = मैच.ग्रुप(1) text2 = मिलान.समूह(2)

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3