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

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

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

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

स्विफ्ट में रेगुलर एक्सप्रेशन: बुनियादी से उन्नत उदाहरणों तक



रेगुलर एक्सप्रेशन (regex) टेक्स्ट के साथ काम करने के लिए एक शक्तिशाली उपकरण है, जो जटिल पैटर्न के अनुसार स्ट्रिंग्स को खोजने, बदलने और जांचने की अनुमति देता है। iOS और macOS के लिए स्विफ्ट में, रेगुलर एक्सप्रेशन के साथ काम फाउंडेशन फ्रेमवर्क के NSRegularExpression क्लास के माध्यम से कार्यान्वित किया जाता है। इस लेख में, हम सभी प्रमुख पहलुओं को कवर करेंगे: सबसे सरल पैटर्न बनाने से लेकर परिणामों को संसाधित करने और प्रदर्शन को अनुकूलित करने तक।



यह लेख स्विफ्ट से परिचित होने वाले शुरुआती लोगों और iOS/macOS अनुप्रयोगों में टेक्स्ट के साथ काम करने के अपने ज्ञान को गहरा करने के इच्छुक अनुभवी डेवलपर्स दोनों के लिए उपयोगी होगा।



1. NSRegularExpression के साथ बुनियादी काम



NSRegularExpression क्लास स्विफ्ट में रेगुलर एक्सप्रेशन के साथ काम करने का मुख्य उपकरण है। यह स्ट्रिंग्स से डेटा खोजने, बदलने और निकालने के तरीके प्रदान करता है।



1.1. रेगुलर एक्सप्रेशन बनाना



NSRegularExpression ऑब्जेक्ट बनाने के लिए, एक इनिशियलाइज़र का उपयोग किया जाता है जो पैटर्न के साथ एक स्ट्रिंग और वैकल्पिक फ़्लैग (NSRegularExpression.Options) लेता है। कंस्ट्रक्शन को try में लपेटा गया है, क्योंकि यह गलत पैटर्न सिंटैक्स के मामले में एक त्रुटि फेंक सकता है।



import Foundation

let pattern = "\\\\d{3}-\\\\d{2}-\\\\d{4}" // उदाहरण: 123-45-6789do { let regex = try NSRegularExpression(pattern: pattern, options: []) print("रेगुलर एक्सप्रेशन सफलतापूर्वक बनाया गया")} catch { print("रेगुलर एक्सप्रेशन सिंटैक्स में त्रुटि: \\(error.localizedDescription)")}


1.2. मुख्य विकल्प (NSRegularExpression.Options)



विकल्प रेगुलर एक्सप्रेशन के व्यवहार को बदलने की अनुमति देते हैं। यहाँ सबसे अधिक उपयोग किए जाने वाले हैं:



  • .caseInsensitive — अक्षरों के केस को अनदेखा करना (A = a)।
  • .allowCommentsAndWhitespace — पैटर्न में स्पेस और टिप्पणियों को अनदेखा करना।
  • .dotMatchesLineSeparators — डॉट (.) लाइन ब्रेक कैरेक्टर से भी मेल खाता है।
  • .anchorsMatchLines — ^ और $ कैरेक्टर पूरी स्ट्रिंग के बजाय प्रत्येक लाइन की शुरुआत और अंत से मेल खाते हैं।


.caseInsensitive विकल्प के साथ उदाहरण:



let pattern = "hello"let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive)let testString = "Hello, World!"let range = NSRange(location: 0, length: testString.utf16.count)if regex.firstMatch(in: testString, options: [], range: range) != nil {    print("मिलान मिला") // आउटपुट: मिलान मिला}


2. मिलान खोजना और परिणामों के साथ काम करना



रेगुलर एक्सप्रेशन बनाने के बाद, आप स्ट्रिंग में मिलान खोज सकते हैं। इसके लिए firstMatch और matches विधियों का उपयोग किया जाता है।



2.1. पहला मिलान खोजना



firstMatch(in:options:range:) विधि पहले पाए गए मिलान को NSTextCheckingResult ऑब्जेक्ट के रूप में लौटाती है (या कुछ नहीं मिलने पर nil)।



let text = "मेरा नंबर: 123-45-6789, और 987-65-4321 भी"let pattern = "\\\\d{3}-\\\\d{2}-\\\\d{4}"let regex = try NSRegularExpression(pattern: pattern, options: [])let range = NSRange(location: 0, length: text.utf16.count)

if let match = regex.firstMatch(in: text, options: [], range: range) { let matchedString = (text as NSString).substring(with: match.range) print("पहला मिलान: \\(matchedString)") // 123-45-6789}


2.2. सभी मिलान खोजना



matches(in:options:range:) विधि सभी मिलानों की एक सरणी लौटाती है। यह तब उपयोगी होता है जब आपको पैटर्न की प्रत्येक घटना को संसाधित करने की आवश्यकता होती है।



let text = "कोड: ABC-123, DEF-456, GHI-789"let pattern = "[A-Z]{3}-\\\\d{3}"let regex = try NSRegularExpression(pattern: pattern, options: [])let range = NSRange(location: 0, length: text.utf16.count)let matches = regex.matches(in: tex                

ब्लॉग

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