Kotlin में रेगुलर एक्सप्रेशन: उदाहरणों के साथ पूर्ण गाइड

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

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

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

Kotlin में रेगुलर एक्सप्रेशन: मूल बातों से लेकर उन्नत तकनीकों तक



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



1. Kotlin में Regex बनाना और मूल सिंटैक्स



Kotlin में, रेगुलर एक्सप्रेशन Regex क्लास का उपयोग करके या स्ट्रिंग के लिए .toRegex() एक्सटेंशन के माध्यम से बनाया जाता है। सभी मानक मेटाकैरेक्टर और क्वांटिफायर समर्थित हैं।



Regex बनाने के तरीके:

// तरीका 1: कंस्ट्रक्टर के माध्यम सेval regex = Regex("\\\\d{3}-\\\\d{2}-\\\\d{4}")

// तरीका 2: toRegex() के माध्यम सेval pattern = "[a-z]+@[a-z]+\\\\.[a-z]+".toRegex()

// तरीका 3: विकल्पों के साथ (केस-इनसेंसिटिव)val caseInsensitive = Regex("kotlin", RegexOption.IGNORE_CASE)


मुख्य मेटाकैरेक्टर और क्वांटिफायर:

  • . — कोई भी कैरेक्टर (न्यू लाइन को छोड़कर)
  • \\d — अंक (0-9)
  • \\w — अक्षर, अंक या अंडरस्कोर
  • \\s — व्हाइटस्पेस कैरेक्टर
  • ^ — स्ट्रिंग की शुरुआत
  • $ — स्ट्रिंग का अंत
  • * — 0 या अधिक दोहराव
  • + — 1 या अधिक दोहराव
  • ? — 0 या 1 दोहराव
  • {n,m} — n से m तक दोहराव


2. मुख्य संचालन: खोज, जाँच और निष्कर्षण



Regex क्लास टेक्स्ट के साथ काम करने के लिए कई विधियाँ प्रदान करता है। आइए उनमें से सबसे महत्वपूर्ण पर नज़र डालें।



मिलान की जाँच (matches)

matches() विधि जाँचती है कि क्या पूरी स्ट्रिंग पूरी तरह से पैटर्न से मेल खाती है:

val phonePattern = Regex("\\\\+7\\\\d{10}")println(phonePattern.matches("+79261234567")) // trueprintln(phonePattern.matches("+7926123456")) // false (10 के बजाय 9 अंक)


पहला मिलान खोजना (find)

find() विधि MatchResult? ऑब्जेक्ट के रूप में पहला मिलान लौटाती है:

val text = "Contacts: email@test.com and support@domain.org"val emailRegex = "[\\\\w.]+@[\\\\w.]+\\\\.[a-z]+".toRegex()val match = emailRegex.find(text)println(match?.value) // email@test.comprintln(match?.range) // 10..23 (शुरुआत और अंत के इंडेक्स)


सभी मिलान खोजना (findAll)

सभी मिलान प्राप्त करने के लिए findAll() का उपयोग करें, जो Sequence<MatchResult> अनुक्रम लौटाता है:

val allMatches = emailRegex.findAll(text)allMatches.forEach { match ->    println("पाया गया: ${match.value} स्थिति में ${match.range.first}")}// आउटपुट:// पाया गया: email@test.com स्थिति में 10// पाया गया: support@domain.org स्थिति में 28


उपस्थिति की जाँच (containsMatchIn)

containsMatchIn() विधि Boolean लौटाती है — क्या कम से कम एक मिलान है:

val hasEmail = emailRegex.containsMatchIn(text)println(hasEmail) // true


3. Regex के साथ प्रतिस्थापन और split



रेगुलर एक्सप्रेशन स्ट्रिंग के भागों को बदलने और टेक्स्ट को विभाजित करने के लिए उत्कृष्ट हैं।



पहले मिलान का प्रतिस्थापन (replaceFirst)

val original = "ID: 12345, code: 67890"val digitRegex = "\\\\d+".toRegex()val masked = digitRegex.replaceFirst(original, "***")println(masked) // ID: ***, code: 67890


सभी मिलानों का प्रतिस्थापन (replace)

val censored = digitRegex.replace(original, "***")println(censored) // ID: ***, code: ***


लैम्ब्डा का उपयोग करके प्रतिस्थापन

आप एक लैम्ब्डा पास कर सकते हैं जो प्रत्येक मिलान के लिए कॉल किया जाएगा।

ब्लॉग

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