एक रेगुलर एक्सप्रेशन वर्णों का एक क्रम है जो एक खोज पैटर्न बनाता है। नियमित अभिव्यक्तियों का उपयोग मुख्य रूप से ग्रंथों या तारों को खोजने, सत्यापित करने और बदलने के लिए किया जाता है।
मास्टरकार्ड, वीज़ा कार्ड और अमेरिकन एक्सप्रेस जैसे क्रेडिट कार्ड नंबरों को रेगुलर एक्सप्रेशन के साथ सत्यापित करना सीखें।
क्रेडिट कार्ड नंबर को मान्य करने के लिए RegEx का उपयोग कब करें?
तृतीय-पक्ष सेवाएं प्रत्येक लेन-देन के प्रयास के लिए शुल्क लेती हैं। चाहे लेन-देन सफल हो या न हो, आपको शुल्कों का भुगतान करना होगा। ऐसे मामलों में, आप क्रेडिट कार्ड नंबरों को अस्वीकार करना चाहते हैं जो स्पष्ट रूप से अमान्य हैं। आप रेगुलर एक्सप्रेशंस का उपयोग करके क्रेडिट कार्ड नंबरों को त्वरित रूप से मान्य कर सकते हैं।
लेकिन आप अपनी भुगतान सुविधा के लिए पूरी तरह से रेगुलर एक्सप्रेशन सत्यापन पर भरोसा नहीं कर सकते। कार्ड जारीकर्ता नियमित रूप से अपने कार्ड नंबर पैटर्न बदलते हैं (नए पैटर्न पेश करते हैं या पुराने वाले वापस लेते हैं), इसलिए रेगेक्स विधि सबसे मजबूत समाधान नहीं है। यद्यपि आप किसी स्रोत से कार्ड पैटर्न के शीर्ष पर रखने का प्रयास कर सकते हैं विकिपीडिया वह अक्सर अपडेट किया जाता है।
आप कार्ड ब्रांड को जल्दी से खोजने के लिए रेगेक्स का उपयोग भी कर सकते हैं जिसका उपयोग आप लोगो या लेबल प्रदर्शित करने के लिए कर सकते हैं।
रेगुलर एक्सप्रेशंस के कई व्यावहारिक उपयोग मामले हैं। लिनक्स ग्रेप कमांड शायद रेगेक्स का सबसे आम व्यावहारिक उपयोग मामला है।
इस परियोजना में प्रयुक्त कोड एक में उपलब्ध है गिटहब रिपॉजिटरी और आपके लिए एमआईटी लाइसेंस के तहत उपयोग करने के लिए स्वतंत्र है।
मास्टरकार्ड नंबर को मान्य करने के लिए RegEx
एक मास्टरकार्ड संख्या मान्य है यदि वह निम्नलिखित शर्तों को पूरा करती है:
- स्ट्रिंग में कोई विशेष वर्ण, अक्षर या खाली स्थान नहीं होना चाहिए।
- वर्णों की संख्या 16 के बराबर होनी चाहिए।
- स्ट्रिंग या तो 2-अंकीय संख्या श्रेणी (51 से 55 तक) या 4-अंकीय संख्या श्रेणी (2221 से 2720 तक) के साथ शुरू होनी चाहिए।
- यदि स्ट्रिंग 2 अंकों की संख्या श्रेणी (51 से 55 तक) से शुरू होती है, तो अगले 14 अंक 0 से 9 के बीच की संख्या होनी चाहिए।
- यदि स्ट्रिंग 4 अंकों की संख्या श्रेणी (2221 से 2720 तक) से शुरू होती है, तो अगले 12 अंक 0 से 9 के बीच की संख्या होनी चाहिए।
निम्नलिखित रेगेक्स उपरोक्त शर्तों को पूरा करता है और मास्टरकार्ड संख्या को मान्य कर सकता है:
^5[1-5][0-9]{14}|^(222[1-9]|22[3-9]\\d|2[3-6]\\d{2}|27[ 0-1]\\d|2720)[0-9]{12}$
यदि आप उपरोक्त अभिव्यक्ति से सहज नहीं हैं, तो देखें रेगुलर एक्सप्रेशंस के लिए शुरुआती गाइड पहला।
आप किसी भी प्रोग्रामिंग लैंग्वेज में मास्टरकार्ड नंबर को मान्य करने के लिए उपरोक्त रेगेक्स का उपयोग कर सकते हैं। यहां बताया गया है कि पायथन में ऐसा कैसे करें:
आयात दोबारा
डीईएफ़चेक मास्टरकार्ड नं(कार्ड नंबर):
रेगेक्स = "^5[1-5][0-9]{14}|^(222[1-9]|22[3-9]\\d|2[3-6]\\d{2}|27[ 0-1]\\d|2720)[0-9]{12}$"
r = re.compile (रेगेक्स)अगर (दोबारा।खोज(आर, कार्ड नंबर)):
प्रिंट ("वैध")
अन्य:
प्रिंट ("मान्य नहीं है")कार्ड1 = "5110762060017101"
चेकमास्टरकार्ड संख्या (कार्ड1)
कार्ड2 = "8632458236982734"
चेकमास्टरकार्ड संख्या (कार्ड2)
इस कोड को चलाने से पुष्टि होगी कि पहला नंबर मान्य है लेकिन दूसरा नहीं है:
वीजा कार्ड नंबर को मान्य करने के लिए RegEx
एक वीज़ा कार्ड संख्या मान्य है यदि यह निम्नलिखित शर्तों को पूरा करती है:
- स्ट्रिंग में कोई विशेष वर्ण, अक्षर या खाली स्थान नहीं होना चाहिए।
- स्ट्रिंग 4 से शुरू होनी चाहिए।
- वर्णों की संख्या 13 या 16 के बराबर होनी चाहिए। पुराने वीज़ा कार्ड में 13 वर्ण होते हैं और नए में 16 वर्ण होते हैं।
- यदि वर्णों की संख्या 13 के बराबर है, तो अंतिम 12 अंक 0 से 9 के बीच की कोई संख्या होनी चाहिए।
- यदि वर्णों की संख्या 16 के बराबर है, तो अंतिम 15 अंक 0 से 9 के बीच की कोई संख्या होनी चाहिए।
निम्नलिखित रेगेक्स उपरोक्त शर्तों को पूरा करता है और आप वीज़ा कार्ड नंबर को मान्य करने के लिए इसका उपयोग कर सकते हैं:
^4[0-9]{12}(?:[0-9]{3})?$
वीजा कार्ड नंबर को मान्य करने के लिए नीचे पायथन दृष्टिकोण है:
आयात दोबारा
डीईएफ़चेक वीज़ा कार्ड नं(कार्ड नंबर):
रेगेक्स = "^4[0-9]{12}(?:[0-9]{3})?$"
r = re.compile (रेगेक्स)अगर (दोबारा।खोज(आर, कार्ड नंबर)):
प्रिंट ("वैध")
अन्य:
प्रिंट ("मान्य नहीं है")कार्ड1 = "4539890694174109"
चेक वीज़ा कार्ड नंबर (कार्ड 1)
कार्ड2 = "49237429498"
चेक वीज़ा कार्ड नं (कार्ड 2)
दोबारा, आउटपुट पुष्टि करता है कि पहला नंबर मान्य है जबकि दूसरा अमान्य है:
अमेरिकन एक्सप्रेस कार्ड नंबर को मान्य करने के लिए RegEx
एक अमेरिकन एक्सप्रेस कार्ड नंबर वैध है यदि वह निम्नलिखित शर्तों को पूरा करता है:
- स्ट्रिंग में कोई विशेष वर्ण, अक्षर या खाली स्थान नहीं होना चाहिए।
- वर्णों की यह संख्या 15 के बराबर होनी चाहिए।
- स्ट्रिंग 34 या 37 से शुरू होनी चाहिए।
- अंतिम 13 अंक 0 से 9 के बीच की कोई संख्या होनी चाहिए।
निम्नलिखित रेगेक्स उपरोक्त शर्तों को पूरा करता है और आप अमेरिकन एक्सप्रेस कार्ड नंबर को मान्य करने के लिए इसका उपयोग कर सकते हैं:
^3[47][0-9]{13}$
आप निम्नलिखित पायथन कोड का उपयोग करके अमेरिकन एक्सप्रेस कार्ड नंबर को मान्य कर सकते हैं:
आयात दोबारा
डीईएफ़चेकअमेरिकनएक्सप्रेसकार्डNo(कार्ड नंबर):
रेगेक्स = "^3[47][0-9]{13}$"
r = re.compile (रेगेक्स)अगर (दोबारा।खोज(आर, कार्ड नंबर)):
प्रिंट ("वैध")
अन्य:
प्रिंट ("मान्य नहीं है")कार्ड1 = "372831730491196"
चेकअमेरिकनएक्सप्रेसकार्डनहीं (कार्ड1)
कार्ड2 = "84732593847743042"
चेकअमेरिकनएक्सप्रेसकार्डसंख्या (कार्ड2)
एक बार और, आउटपुट पुष्टि करता है कि पहला नंबर मान्य है, लेकिन दूसरा अमान्य है:
नियमित अभिव्यक्तियों के अनुप्रयोग
सामान्य क्रेडिट कार्ड नंबरों को मान्य करने के लिए आप कुछ काफी सरल रेगेक्स का उपयोग कर सकते हैं। RegEx एक शक्तिशाली टूल है जिसका उपयोग आप डेटा प्री-प्रोसेसिंग, पैटर्न मैचिंग, डेटा एक्सट्रैक्शन, लेक्सिकल एनालिसिस, नेचुरल लैंग्वेज प्रोसेसिंग, वेब स्क्रैपिंग आदि के लिए कर सकते हैं। HTML प्रपत्रों के सत्यापन को संभालने के लिए आप वेब डेवलपमेंट में रेगुलर एक्सप्रेशन का भी उपयोग कर सकते हैं।