जावा में रेगुलर एक्सप्रेशन: कोड उदाहरणों के साथ पूर्ण गाइड
\n\nरेगुलर एक्सप्रेशन (regex) पैटर्न के आधार पर टेक्स्ट खोजने, निकालने और बदलने के लिए एक शक्तिशाली उपकरण है। जावा में, रेगुलर एक्सप्रेशन के साथ काम दो मुख्य क्लासेस के माध्यम से कार्यान्वित किया जाता है: java.util.regex.Pattern (पैटर्न का कंपाइलेशन) और java.util.regex.Matcher (खोज निष्पादित करना)। इस लेख में, हम सिंटैक्स, मुख्य विधियों को समझेंगे और व्यावहारिक उदाहरण देखेंगे जो आपको वास्तविक प्रोजेक्ट्स में आत्मविश्वास से regex का उपयोग करने में मदद करेंगे।
1. जावा में रेगुलर एक्सप्रेशन के साथ काम करने की मूल बातें
\nउदाहरणों पर जाने से पहले, आइए मुख्य क्लासेस और उनकी परस्पर क्रिया को समझें।
\n\nPattern क्लास
\nPattern रेगुलर एक्सप्रेशन का एक कंपाइल किया गया प्रतिनिधित्व है। यह स्टैटिक मेथड Pattern.compile() द्वारा बनाया जाता है। कंपाइलेशन के बिना regex का उपयोग संभव नहीं है।
Matcher क्लास
\nMatcher एक "इंजन" है जो स्ट्रिंग में दिए गए पैटर्न के अनुसार खोज करता है। यह मेथड pattern.matcher(inputString) द्वारा बनाया जाता है।
मेटाकैरेक्टर का मूल सिंटैक्स
\n- \n
.— कोई भी कैरेक्टर (न्यू लाइन को छोड़कर) \n\\d— अंक (0-9) \n\\w— अक्षर, अंक या अंडरस्कोर \n\\s— स्पेस कैरेक्टर \n^— स्ट्रिंग की शुरुआत \n$— स्ट्रिंग का अंत \n*— 0 या अधिक दोहराव \n+— 1 या अधिक दोहराव \n?— 0 या 1 दोहराव \n{n,m}— n से m तक दोहराव \n[]— कैरेक्टर सेट (उदाहरण के लिए,[a-z]— कोई भी छोटा अक्षर) \n()— कैप्चर ग्रुप \n
उदाहरण 1: फ़ोन नंबर की सरल जाँच
\nimport java.util.regex.*;\n\npublic class PhoneValidator {\n public static void main(String[] args) {\n String phone = "+7 (999) 123-45-67";\n String regex = "^\\\\+7\\\\s\\\\(\\\\d{3}\\\\)\\\\s\\\\d{3}-\\\\d{2}-\\\\d{2}$";\n \n Pattern pattern = Pattern.compile(regex);\n Matcher matcher = pattern.matcher(phone);\n \n if (matcher.matches()) {\n System.out.println("नंबर सही है");\n } else {\n System.out.println("नंबर फ़ॉर्मेट से मेल नहीं खाता");\n }\n }\n}\n\n2. Matcher के तरीके: matches(), find() और कैप्चर ग्रुप
\nmatches() और find() के बीच अंतर को समझना जावा में regex के साथ सफलतापूर्वक काम करने की कुंजी है।
- \n
matches()— जाँचता है कि पूरी स्ट्रिंग पैटर्न से पूरी तरह मेल खाती है या नहीं (अंतर्निहित रूप से^और$जोड़ता है)। \nfind()— स्ट्रिंग में कहीं भी पैटर्न से मेल खाने वाली सबस्ट्रिंग ढूंढता है। \ngroup()— मिलान किए गए मान या कैप्चर ग्रुप का मान लौटाता है। \n
उदाहरण 2: find() और ग्रुप का उपयोग करके टेक्स्ट से ईमेल पते निकालना
\nimport java.util.regex.*;\n\npublic class EmailExtractor {\n public static void main(String[] args) {\n String text = "संपर्क: support@example.com, info@test.org और admin@site.net.";\n String regex = "([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+)\\\\.([a-zA-Z]{2,})";\n \n Pattern pattern = Pattern.compile(regex);\n Matcher matcher = pattern.matcher(text);\n \n while (matcher.find()) {\n System.out.println("पूरा ईमेल: " + matcher.group());\n System.out.println("उपयोगकर्ता नाम: " + matcher.group(1));\n System.out.println("डोमेन: " + matcher.group(2));\n System.out.println("ज़ोन: " + matcher.group(3));\n System.out.println("---");\n }\n }\n}\n\nउदाहरण 3: matches() का उपयोग करके पासवर्ड सत्यापन
\nआवश्यकताएँ: 8 से 20 कैरेक्टर, कम से कम एक बड़ा अक्षर, कम से कम एक