रेगुलर एक्सप्रेशन्स का उपयोग करना

Clojure:
रेगुलर एक्सप्रेशन्स का उपयोग करना

कैसे:

क्लोजर, लिस्प परिवार में अपनी जड़ों के प्रति सच्ची रहते हुए, जावा की रेगुलर एक्सप्रेशन क्षमताओं के साथ सहजता से इंटरफेस करने वाले कार्यों का एक समृद्ध सेट प्रदान करता है। यहाँ आप उनका उपयोग कैसे कर सकते हैं:

मूल मिलान

यदि एक स्ट्रिंग एक पैटर्न से मेल खाती है तो जांचने के लिए re-matches का उपयोग करें। यदि सफल होता है तो यह पूरी मैच लौटाता है अन्यथा nil

(re-matches #"\d+" "123")  ;=> "123"
(re-matches #"\d+" "abc")  ;=> nil

पैटर्नों की खोज

किसी पैटर्न की पहली उपस्थिति को खोजने के लिए, re-find आपके लिए जाने-माने फ़ंक्शन है:

(re-find #"\d+" "Order 123")  ;=> "123"

समूहों की कैपचरिंग

अपने पैटर्न में परेंथेसिस के साथ re-find का उपयोग करके समूहों को कैप्चर करें:

(let [[_ area code] (re-find #"(1)?(\d{3})" "Phone: 123-4567")]
  (println "Area Code:" area "Code:" code))
;; आउटपुट: Area Code: nil Code: 123

ग्लोबल खोज (सभी मिलान ढूँढना)

क्लोजर में कुछ भाषाओं की तरह एक निर्मित ग्लोबल खोज नहीं है। इसके बजाय, सभी मिलानों का एक आलसी अनुक्रम प्राप्त करने के लिए re-seq का उपयोग करें:

(re-seq #"\d+" "id: 123, qty: 456")  ;=> ("123" "456")

स्ट्रिंग्स को विभाजित करना

एक स्ट्रिंग को एक पैटर्न के आधार पर विभाजित करने के लिए, clojure.string/split का उपयोग करें:

(clojure.string/split "John,Doe,30" #",")  ;=> ["John" "Doe" "30"]

प्रतिस्थापन

एक स्ट्रिंग के एक हिस्से को जो एक पैटर्न से मेल खाता है, clojure.string/replace के साथ प्रतिस्थापित करें:

(clojure.string/replace "2023-04-01" #"\d{4}" "YYYY")  ;=> "YYYY-04-01"

तृतीय-पक्ष पुस्तकालय

हालाँकि क्लोजर का निर्मित समर्थन अधिकांश मामलों के लिए पर्याप्त है, अधिक जटिल परिदृश्यों के लिए, clojure.spec जैसे पुस्तकालयों का उपयोग मजबूत डेटा मान्यता और रेगेक्स-आधारित रूटिंग और इनपुट मान्यता के साथ वेब एप्लिकेशनों में रिएक्टिव DOM मैनिपुलेशन के लिए reagent का उपयोग करने पर विचार करें।

;; एक ईमेल को मान्य करने के लिए clojure.spec का उपयोग करने का उदाहरण
(require '[clojure.spec.alpha :as s])
(s/def ::email (s/and string? #(re-matches #".+@.+\..+" %)))
(s/valid? ::email "[email protected]")  ;=> true

याद रखें, जबकि रेगुलर एक्सप्रेशंस शक्तिशाली होते हैं, वे कोड को पढ़ना और बनाए रखना कठिन बना सकते हैं। उनका उपयोग विवेकपूर्वक करें और संभव हो तो हमेशा सरल स्ट्रिंग मैनिपुलेशन फ़ंक्शन्स पर विचार करें।