जावा में रेगुलर एक्सप्रेशन: शुरुआती लोगों के लिए पूरी गाइड
\n\nरेगुलर एक्सप्रेशन (regex) पैटर्न के आधार पर टेक्स्ट खोजने, निकालने और बदलने के लिए एक शक्तिशाली उपकरण है। जावा में, रेगुलर एक्सप्रेशन के साथ काम करना पैकेज java.util.regex के माध्यम से कार्यान्वित किया जाता है। इस लेख में, हम जावा में रेगुलर एक्सप्रेशन की मूल बातें समझेंगे, Pattern और Matcher क्लास का उपयोग करना सीखेंगे, और व्यावहारिक उदाहरण देखेंगे।
1. जावा में regex के साथ काम करने के लिए मुख्य क्लास
\n\nजावा में रेगुलर एक्सप्रेशन के साथ काम करने के लिए दो मुख्य क्लास का उपयोग किया जाता है:
\n\n- \n
- Pattern — एक संकलित रेगुलर एक्सप्रेशन का प्रतिनिधित्व करता है। \n
- Matcher — टेक्स्ट के साथ खोज और मिलान संचालन करता है। \n
एक सुविधाजनक विधि String.matches() भी है, जो जल्दी से जांचने की अनुमति देती है कि स्ट्रिंग पैटर्न से मेल खाती है या नहीं, लेकिन यह कम लचीली है।
उदाहरण 1: सरल मिलान
\n\nimport java.util.regex.*;\n\npublic class RegexExample1 {\n public static void main(String[] args) {\n String text = "नमस्ते, दुनिया! Java सबसे अच्छी भाषा है।";\n String pattern = "Java";\n\n Pattern p = Pattern.compile(pattern);\n Matcher m = p.matcher(text);\n\n if (m.find()) {\n System.out.println("शब्द मिला: " + m.group());\n } else {\n System.out.println("कोई मिलान नहीं");\n }\n }\n}\n\nआउटपुट: शब्द मिला: Java
2. मेटाकैरेक्टर और कैरेक्टर क्लास
\n\nरेगुलर एक्सप्रेशन पैटर्न का वर्णन करने के लिए विशेष प्रतीकों (मेटाकैरेक्टर) का उपयोग करते हैं:
\n\n- \n
.— कोई भी कैरेक्टर (न्यू लाइन को छोड़कर) \n \\d— अंक [0-9] \n \\D— अंक नहीं \n \\w— अक्षर, अंक या अंडरस्कोर [a-zA-Z0-9_] \n \\W— शब्द नहीं \n \\s— व्हाइटस्पेस कैरेक्टर \n \\S— व्हाइटस्पेस कैरेक्टर नहीं \n [abc]— a, b या c में से एक कैरेक्टर \n [^abc]— a, b, c को छोड़कर कोई भी कैरेक्टर \n
उदाहरण 2: टेक्स्ट में अंक खोजना
\n\nimport java.util.regex.*;\n\npublic class RegexExample2 {\n public static void main(String[] args) {\n String text = "मेरा नंबर: 123-456-7890";\n String pattern = "\\\\d+"; // एक या अधिक अंक\n\n Pattern p = Pattern.compile(pattern);\n Matcher m = p.matcher(text);\n\n while (m.find()) {\n System.out.println("संख्या मिली: " + m.group());\n }\n }\n}\n\nआउटपुट:
\nसंख्या मिली: 123\nसंख्या मिली: 456\nसंख्या मिली: 7890\n\n3. क्वांटिफायर और सीमाएँ
\n\nक्वांटिफायर यह निर्दिष्ट करते हैं कि पैटर्न के एक तत्व को कितनी बार दोहराया जाना चाहिए:
\n\n- \n
*— 0 या अधिक बार \n +— 1 या अधिक बार \n ?— 0 या 1 बार \n {n}— ठीक n बार \n {n,}— n या अधिक बार \n {n,m}— n से m बार तक \n
सीमाएँ यह निर्दिष्ट करने में मदद करती हैं कि पैटर्न कहाँ होना चाहिए:
\n\n- \n
^— स्ट्रिंग की शुरुआत \n $— स्ट्रिंग का अंत \n \\b— शब्द की सीमा \n
उदाहरण 3: ईमेल पता सत्यापन
\n\nimport java.util.regex.*;\n\npublic class RegexExample3 {\n public static void main(String[] args) {\n String email = "user@example.com";\n String pattern = "^[\\\\w.-]+@[\\\\w.-]+\\\\.\\\\w{2,}$";\n\n boolean isValid = Pattern.matches(pattern, email);\n System.out.println("ईमेल मान्य है: " + isValid);\n }\n}\n\nआउटपुट: ईमेल मान्य है: true
4. कैप्चर ग्रुप और टेक्स्ट बदलना
\n\nकैप्चर ग्रुप आपको भाग निकालने की अनुमति देते हैं