Swift में रेगुलर एक्सप्रेशन का परिचय
\n\nरेगुलर एक्सप्रेशन (regex) एक शक्तिशाली टूल है जो पैटर्न के आधार पर टेक्स्ट को खोजने, निकालने और बदलने में मदद करता है। Swift में रेगुलर एक्सप्रेशन के साथ काम करने के लिए Foundation फ्रेमवर्क का NSRegularExpression क्लास और स्ट्रिंग के बिल्ट-इन मेथड्स का उपयोग किया जाता है। iOS और macOS ऐप डेवलपमेंट में फॉर्म वैलिडेशन, डेटा पार्सिंग, टेक्स्ट फ़िल्टरिंग और कई अन्य कार्यों के लिए यह एक अनिवार्य टूल है।
इस लेख में हम Swift में रेगुलर एक्सप्रेशन के साथ काम करने की मुख्य क्षमताओं को व्यावहारिक उदाहरणों के साथ समझेंगे। आप सीखेंगे कि पैटर्न कैसे बनाएं, खोज, बदलाव और डेटा निष्कर्षण कैसे करें।
\n\nNSRegularExpression के साथ बुनियादी काम
\n\nNSRegularExpression क्लास Swift में रेगुलर एक्सप्रेशन के साथ काम करने का मुख्य तरीका है। आइए बुनियादी ऑपरेशनों को देखें।
रेगुलर एक्सप्रेशन बनाना
\n\nimport Foundation\n\nlet pattern = "[A-Za-z]+@[A-Za-z]+\\\\.[A-Za-z]+"\nguard let regex = try? NSRegularExpression(pattern: pattern) else {\n fatalError("गलत पैटर्न")\n}\n\nडबल स्लैश \\\\ पर ध्यान दें — Swift स्ट्रिंग्स में बैकस्लैश को एस्केप करना आवश्यक है।
पहला मैच ढूंढना
\n\nlet text = "हमसे ईमेल से संपर्क करें: support@example.com"\nlet nsString = text as NSString\nlet range = NSRange(location: 0, length: nsString.length)\n\nif let match = regex.firstMatch(in: text, range: range) {\n let email = nsString.substring(with: match.range)\n print("ईमेल मिला: \\(email)") // support@example.com\n}\n\nसभी मैच ढूंढना
\n\nlet text = "संपर्क: info@site.com, admin@site.com, support@site.com"\nlet matches = regex.matches(in: text, range: NSRange(location: 0, length: text.count))\n\nfor match in matches {\n let range = match.range\n let email = (text as NSString).substring(with: range)\n print(email)\n}\n// आउटपुट:\n// info@site.com\n// admin@site.com\n// support@site.com\n\nकैप्चर ग्रुप का उपयोग
\n\nकैप्चर ग्रुप मैच के कुछ हिस्सों को निकालने में मदद करते हैं। Swift में ग्रुप को गोल कोष्ठक () से दर्शाया जाता है।
ग्रुप के साथ डेटा निकालना
\n\nlet pattern = "(\\\\d{4})-(\\\\d{2})-(\\\\d{2})"\nlet dateString = "आज: 2024-03-15"\n\nguard let regex = try? NSRegularExpression(pattern: pattern) else { return }\nlet nsString = dateString as NSString\n\nif let match = regex.firstMatch(in: dateString, range: NSRange(location: 0, length: nsString.length)) {\n let fullDate = nsString.substring(with: match.range) // 2024-03-15\n let year = nsString.substring(with: match.range(at: 1)) // 2024\n let month = nsString.substring(with: match.range(at: 2)) // 03\n let day = nsString.substring(with: match.range(at: 3)) // 15\n \n print("साल: \\(year), महीना: \\(month), दिन: \\(day)")\n}\n\nनामित ग्रुप (Range के साथ काम)
\n\nSwift 5.7 से शुरू करके, Range के साथ अधिक सुविधाजनक सिंटैक्स का उपयोग किया जा सकता है:
let text = "कीमत: 1500 रुपये"\nlet pattern = #"(\\d+)\\sरुपये"#\n\nif let range = text.range(of: pattern, options: .regularExpression) {\n let match = text[range]\n print("मिला: \\(match)") // 1500 रुपये\n}\n\nरेगुलर एक्सप्रेशन से टेक्स्ट बदलना
\n\nसबसे उपयोगी सुविधाओं में से एक है पैटर्न के आधार पर टेक्स्ट के हिस्सों को बदलना।
\n\nसरल बदलाव
\n\nlet text = "नंबर पर कॉल करें +7 (123) 456-78-90"\nlet pattern = "\\\\+7\\\\s\\\\(\\\\d{3}\\\\)\\\\s\\\\d{3}-\\\\d{2}-\\\\d{2}"\nlet replacement = "[नंबर छिपा हुआ]"\n\nguard let regex = try? NSRegularExpression(pattern: pattern) else { return }\nlet modifiedText = regex.stringByReplacingMatches(\n in: text,\n range: NSRange(location: 0, length: text.count),\n withTemplate: replacement\n)\n\nprint(modifiedText) // नंबर पर कॉल करें [नंबर छिपा हुआ]\n\n