Kotlin में रेगुलर एक्सप्रेशन: शुरुआती के लिए पूर्ण गाइड
\n\nरेगुलर एक्सप्रेशन (regex) पैटर्न के आधार पर स्ट्रिंग्स को खोजने, बदलने और जांचने के लिए एक शक्तिशाली उपकरण है। Kotlin में, रेगुलर एक्सप्रेशन के साथ काम Regex क्लास के माध्यम से कार्यान्वित किया जाता है, जो टेक्स्ट प्रोसेसिंग के लिए सुविधाजनक तरीके प्रदान करता है। इस लेख में, हम स्पष्ट उदाहरणों के साथ Kotlin में रेगुलर एक्सप्रेशन की मूल बातें समझेंगे, जो आपको इस उपकरण को जल्दी से सीखने में मदद करेंगे।
रेगुलर एक्सप्रेशन क्या है?
\n\nरेगुलर एक्सप्रेशन वर्णों का एक क्रम है जो टेक्स्ट में खोज के लिए एक पैटर्न निर्दिष्ट करता है। उदाहरण के लिए, पैटर्न \\\\d{3} लगातार तीन अंक ढूंढता है, और [A-Z]+ एक या अधिक बड़े अक्षर ढूंढता है।
Kotlin में regex के साथ काम करने के लिए Regex क्लास का उपयोग किया जाता है, जिसे दो तरीकों से बनाया जा सकता है:
// तरीका 1: कंस्ट्रक्टर के माध्यम से\nval regex1 = Regex("\\\\d+")\n\n// तरीका 2: toRegex() एक्सटेंशन के माध्यम से\nval regex2 = "\\\\d+".toRegex()\n\n\nKotlin में Regex के मुख्य तरीके
\n\nRegex क्लास स्ट्रिंग्स के साथ काम करने के लिए कई महत्वपूर्ण तरीके प्रदान करता है:
- \n
matches()— जांचता है कि पूरी स्ट्रिंग पैटर्न से मेल खाती है या नहीं \ncontainsMatchIn()— जांचता है कि स्ट्रिंग में कम से कम एक मैच है या नहीं \nfind()— पहला मैच ढूंढता है \nfindAll()— सभी मैच ढूंढता है \nreplace()— मैच को निर्दिष्ट स्ट्रिंग से बदलता है \nsplit()— पैटर्न के आधार पर स्ट्रिंग को विभाजित करता है \n
उदाहरण 1: ईमेल पता जांचना
\n\nआइए एक व्यावहारिक उदाहरण से शुरू करें — ईमेल पते की सत्यता की जाँच:
\n\nfun isValidEmail(email: String): Boolean {\n val emailRegex = Regex("^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,}$")\n return emailRegex.matches(email)\n}\n\nfun main() {\n val emails = listOf(\n "user@example.com",\n "invalid-email",\n "test@domain.co.uk",\n "@gmail.com"\n )\n \n emails.forEach { email ->\n println("$email: ${if (isValidEmail(email)) "मान्य" else "अमान्य"}")\n }\n}\n\n\nनिष्पादन परिणाम:
\nuser@example.com: मान्य\ninvalid-email: अमान्य\ntest@domain.co.uk: मान्य\n@gmail.com: अमान्य\n\nउदाहरण 2: फ़ोन नंबर निकालना
\n\nमान लीजिए कि हमारे पास विभिन्न फ़ोन नंबरों वाला एक टेक्स्ट है, और हम +7 (XXX) XXX-XX-XX प्रारूप में सभी नंबर निकालना चाहते हैं:
\n\nfun extractPhoneNumbers(text: String): List {\n val phoneRegex = Regex("""\\+7 \\(\\d{3}\\) \\d{3}-\\d{2}-\\d{2}""")\n return phoneRegex.findAll(text).map { it.value }.toList()\n}\n\nfun main() {\n val text = """\n संपर्क:\n प्रबंधक: +7 (495) 123-45-67\n सहायता: +7 (812) 987-65-43\n अतिरिक्त: 8-800-555-35-35\n """.trimIndent()\n \n val phones = extractPhoneNumbers(text)\n println("मिले नंबर:")\n phones.forEach { println(it) }\n}\n \n\nपरिणाम:
\nमिले नंबर:\n+7 (495) 123-45-67\n+7 (812) 987-65-43\n\nध्यान दें: नंबर 8-800-555-35-35 नहीं मिला, क्योंकि यह हमारे पैटर्न से मेल नहीं खाता।
\n\nउदाहरण 3: टेक्स्ट बदलना और साफ करना
\n\nरेगुलर एक्सप्रेशन टेक्स्ट के हिस्सों को बदलने के लिए बहुत उपयुक्त हैं। उदाहरण के लिए, एक स्ट्रिंग से सभी HTML टैग हटाएँ:
\n\nfun removeHtmlTags(html: String): String {\n val tagRegex = Regex("<[^>]*>")\n return tagRegex.replace(html, "")\n}\n\nfun main() {\n val htmlText = """\n <h1>शीर्षक</h1>\n <p>यह <b>महत्वपूर्ण</b> टेक्स्ट है।</p>\n <a href="link.html">लिंक</a>\n """.trimIndent()\n \n val cleanText = removeHtmlTags(htmlText)\n println("साफ किया गया टेक्स्ट:")\n println(cleanText)\n}\n\n\nपरिणाम:
\nब्लॉग
पुस्तक अनुशंसाएँ
यह भी पढ़ें
2025 के लिए C# पुस्तकें: शुरुआती से विशेषज्ञ तक
YouTube API: वीडियो थंबनेल कैसे प्राप्त करें और गलतियों से कैसे बचें
जावा प्रोजेक्ट के लिए दस्तावेज़ीकरण लेखन: उन्नत स्तर
TypeScript में पार्सिंग: डेटा स्क्रैपिंग तेज़ और विश्वसनीय बनाएं
Go में म्यूटेशन टेस्टिंग: उन बग्स को कैसे पकड़ें जो यूनिट टेस्ट से छूट जाते हैं