Swift में रेगुलर एक्सप्रेशन उदाहरण सहित: शुरुआती लोगों के लिए

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

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

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

Swift में रेगुलर एक्सप्रेशन: शुरुआती लोगों के लिए पूर्ण गाइड

\n

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

\n\n

1. रेगुलर एक्सप्रेशन सिंटैक्स की मूल बातें

\n

Swift में कोड लिखने से पहले, regex के मूल प्रतीकों और संरचनाओं को समझना महत्वपूर्ण है। यहाँ मुख्य तत्व हैं:

\n
    \n
  • . — कोई भी वर्ण (नई पंक्ति को छोड़कर)
  • \n
  • * — पिछले वर्ण की 0 या अधिक पुनरावृत्तियाँ
  • \n
  • + — 1 या अधिक पुनरावृत्तियाँ
  • \n
  • ? — 0 या 1 पुनरावृत्ति (पिछले वर्ण को वैकल्पिक बनाता है)
  • \n
  • \\d — कोई भी अंक (0-9)
  • \n
  • \\w — कोई भी अक्षर, अंक या अंडरस्कोर
  • \n
  • [abc] — a, b या c में से एक वर्ण
  • \n
  • [^abc] — a, b, c को छोड़कर कोई भी वर्ण
  • \n
  • ^ — स्ट्रिंग की शुरुआत
  • \n
  • $ — स्ट्रिंग का अंत
  • \n
\n

ये प्रतीक पैटर्न बनाने के लिए संयुक्त होते हैं। उदाहरण के लिए, पैटर्न ^[A-Za-z]+$ का अर्थ है: स्ट्रिंग में शुरू से अंत तक केवल लैटिन वर्णमाला के अक्षर हैं।

\n\n

2. Swift में NSRegularExpression बनाना और उपयोग करना

\n

Swift में regex के साथ काम करना Foundation को इम्पोर्ट करने और NSRegularExpression का एक इंस्टेंस बनाने से शुरू होता है। आइए एक सरल उदाहरण देखें: स्ट्रिंग में सभी अंक खोजना।

\n
import Foundation\n\nlet text = "मेरा नंबर: 123-456-7890"\nlet pattern = "\\\\d+" // पैटर्न: एक या अधिक अंक\n\ndo {\n    let regex = try NSRegularExpression(pattern: pattern)\n    let results = regex.matches(in: text, range: NSRange(text.startIndex..., in: text))\n    \n    for match in results {\n        if let range = Range(match.range, in: text) {\n            print("मिला: \\(text[range])")\n        }\n    }\n} catch {\n    print("रेगुलर एक्सप्रेशन में त्रुटि: \\(error.localizedDescription)")\n}\n// आउटपुट:\n// मिला: 123\n// मिला: 456\n// मिला: 7890
\n

बैकस्लैश को एस्केप करने पर ध्यान दें: Swift स्ट्रिंग "\\\\d" रेगुलर एक्सप्रेशन \\d से मेल खाती है। NSRegularExpression क्लास गलत पैटर्न पर एक अपवाद फेंकता है, इसलिए हम try-catch का उपयोग करते हैं।

\n\n

2.1. NSRange के साथ काम करना

\n

विधि matches(in:range:) NSTextCheckingResult ऑब्जेक्ट्स की एक सरणी लौटाती है। प्रत्येक परिणाम में मिलान की गई सीमा (NSRange) होती है। Swift Range में बदलने के लिए, इनिशियलाइज़र Range(match.range, in: text) का उपयोग करें।

\n\n

3. रेगुलर एक्सप्रेशन के व्यावहारिक उदाहरण

\n

आइए तीन विशिष्ट कार्यों पर विचार करें: email जाँच, URL निकालना और टेक्स्ट बदलना।

\n\n

3.1. Email पते का वैलिडेशन

\n

जाँच करें कि क्या स्ट्रिंग एक सरल email पैटर्न (सरलीकृत संस्करण) से मेल खाती है:

\n
func isValidEmail(_ email: String) -> Bool {\n    let pattern = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,}$"\n    let regex = try? NSRegularExpression(pattern: pattern)\n    let range = NSRange(location: 0, length: email.utf16.count)\n    return regex?.firstMatch(in: email, range: range) != nil\n}\n\nprint(isValidEmail("test@example.com"))   // true\nprint(isValidEmail("invalid-email"))      // false
\n

यहाँ हम firstMatch का उपयोग करते हैं, जो पहला मिलान लौटाता है। यदि कोई मिलान नहीं है, तो nil लौटाया जाता है।

\n\n

3.2. टेक्स्ट से URL निकालना

\n

मान लीजिए कि हमारे पास कई लिंक वाली एक स्ट्रिंग है। सभी URL निकालें:

\n
let text = "साइट पर जाएँ https://pythonlib.ru या support@pythonlib.ru पर लिखें"\nlet pattern = "https?://[\\\\w./%-]+"\n\ndo                

ब्लॉग

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