कोटलिन में नियमित अभिव्यक्तियाँ उदाहरण सहित: व्यवहार में

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

कोटलिन में नियमित अभिव्यक्तियाँ उदाहरण सहित: व्यवहार में

\n\n

नियमित अभिव्यक्तियाँ (regex) टेक्स्ट के साथ काम करने के लिए एक शक्तिशाली उपकरण हैं, जो पैटर्न के अनुसार स्ट्रिंग्स की खोज, प्रतिस्थापन और सत्यापन करने की अनुमति देती हैं। कोटलिन में, नियमित अभिव्यक्तियों के साथ काम Regex क्लास और सुविधाजनक एक्सटेंशन फ़ंक्शनों के सेट के माध्यम से कार्यान्वित किया जाता है। इस लेख में, हम सिंटैक्स, मुख्य विधियों का विश्लेषण करेंगे और व्यावहारिक उदाहरणों पर विचार करेंगे जो आपको कोटलिन में regex को जल्दी से सीखने में मदद करेंगे।

\n\n

1. Regex क्लास के साथ काम करने की मूल बातें

\n\n

कोटलिन में, एक नियमित अभिव्यक्ति Regex क्लास का उपयोग करके बनाई जाती है। पैटर्न को एक स्ट्रिंग या raw-स्ट्रिंग (ट्रिपल कोट्स """) का उपयोग करके सेट किया जा सकता है, जो विशेष रूप से बैकस्लैश को एस्केप न करने के लिए सुविधाजनक है।

\n\n
// सामान्य स्ट्रिंग\nval pattern1 = Regex("\\\\d+")  // एक या अधिक अंक\n\n// Raw-स्ट्रिंग (अनुशंसित)\nval pattern2 = Regex("""\\d+""") // वही, लेकिन एस्केपिंग के बिना
\n\n

Regex क्लास वैकल्पिक फ़्लैग भी स्वीकार करता है, उदाहरण के लिए, केस-असंवेदनशील खोज के लिए RegexOption.IGNORE_CASE।

\n\n
val caseInsensitive = Regex("""hello""", RegexOption.IGNORE_CASE)
\n\n

2. मुख्य विधियाँ: match, find, replace

\n\n

कोटलिन नियमित अभिव्यक्तियों के साथ काम करने के लिए कई प्रमुख विधियाँ प्रदान करता है। आइए सबसे लोकप्रिय पर विचार करें।

\n\n

2.1. matchEntire विधि (पूर्ण मिलान)

\n

जाँचता है कि क्या पूरी स्ट्रिंग पैटर्न से मेल खाती है। MatchResult? या null लौटाता है।

\n\n
val regex = Regex("""\\d{3}-\\d{2}-\\d{4}""")\nval text = "123-45-6789"\nval matchResult = regex.matchEntire(text)\nprintln(matchResult?.value) // आउटपुट: 123-45-6789\n\n// यदि स्ट्रिंग पैटर्न से मेल नहीं खाती\nval badText = "123-45-678"\nprintln(regex.matchEntire(badText)) // आउटपुट: null
\n\n

2.2. find विधि (पहला मिलान)

\n

स्ट्रिंग में पैटर्न की पहली घटना खोजता है। MatchResult? लौटाता है।

\n\n
val regex = Regex("""\\d+""")\nval text = "मूल्य: 150 रुपये, छूट: 30%"\nval firstMatch = regex.find(text)\nprintln(firstMatch?.value) // आउटपुट: 150
\n\n

2.3. findAll विधि (सभी मिलान)

\n

पैटर्न की सभी गैर-अतिव्यापी घटनाओं को ढूँढता है। MatchResult का अनुक्रम लौटाता है।

\n\n
val regex = Regex("""\\d+""")\nval text = "मूल्य: 150 रुपये, छूट: 30%"\nval allMatches = regex.findAll(text)\nallMatches.forEach { println(it.value) }\n// आउटपुट:\n// 150\n// 30
\n\n

2.4. replace विधि (प्रतिस्थापन)

\n

पैटर्न की सभी घटनाओं को निर्दिष्ट स्ट्रिंग या लैम्ब्डा के परिणाम से बदल देता है।

\n\n
val regex = Regex("""\\d+""")\nval text = "आईडी: 12345, कोड: 67890"\nval result = regex.replace(text, "***")\nprintln(result) // आउटपुट: आईडी: ***, कोड: ***\n\n// लैम्ब्डा का उपयोग करके प्रतिस्थापन (गतिशील प्रतिस्थापन)\nval dynamicResult = regex.replace(text) { matchResult ->\n    "[" + matchResult.value.toInt().toString() + "]"\n}\nprintln(dynamicResult) // आउटपुट: आईडी: [12345], कोड: [67890]
\n\n

3. कैप्चरिंग ग्रुप्स

\n\n

कैप्चरिंग ग्रुप्स मिलान के भागों को निकालने की अनुमति देते हैं। कोटलिन में, ग्रुप्स को इंडेक्स या नाम (यदि सेट किया गया हो) द्वारा एक्सेस किया जा सकता है।

\n\n

3.1. इंडेक्स द्वारा एक्सेस

\n
val regex = Regex("""(\\d{2})\\.(\\d{2})\\.(\\d{4})""") // दिनांक DD.MM.YYYY प्रारूप में\nval text = "आज: 15.03.2024"\nval match = regex.find(text)\nif (match != null) {\n    val (day, month, year) = match.destructured\n    println("दिन: $day, महीना: $month, वर्ष: $year")\n    // आउटपुट: दिन: 15, महीना: 03, वर्ष: 2024\n}
\n\n

3.2. नामांकित ग्रुप्स

\n

कोटलिन में नामांकित ग्रुप्स का उपयोग किया जा सकता है (सिंटैक्स (?<name>...))।

\n\n
val regex = Regex("""(?<username>\\w+)@(?<domain>\\w+\\.\\w+)""")\nval text = "ईमेल: user@example.com"\nval match = regex.find(text)\nif (match != null) {\n    val username = match.groups["u                

ब्लॉग

पुस्तक अनुशंसाएँ