जावा में उदाहरणों के साथ रेगुलर एक्सप्रेशन
रेगुलर एक्सप्रेशन (regex) पैटर्न के आधार पर टेक्स्ट खोजने, निकालने और बदलने का एक शक्तिशाली उपकरण है। जावा में, रेगुलर एक्सप्रेशन के साथ काम करना पैकेज java.util.regex के माध्यम से कार्यान्वित किया जाता है, जिसमें दो मुख्य क्लास शामिल हैं: Pattern (पैटर्न) और Matcher (मिलान करने वाला)। इस लेख में, हम रेगुलर एक्सप्रेशन के सिंटैक्स, उनके साथ काम करने के तरीकों को समझेंगे और जावा में व्यावहारिक उदाहरण देंगे।
1. रेगुलर एक्सप्रेशन सिंटैक्स की मूल बातें
रेगुलर एक्सप्रेशन स्ट्रिंग खोजने के लिए एक पैटर्न निर्दिष्ट करता है। यहाँ बुनियादी निर्माण हैं:
.— कोई भी कैरेक्टर (न्यू लाइन को छोड़कर)।\\d— अंक (0-9)।\\w— अक्षर, अंक या अंडरस्कोर (लैटिन)।\\s— व्हाइटस्पेस कैरेक्टर (स्पेस, टैब, न्यू लाइन)।[abc]— a, b या c में से एक कैरेक्टर।[^abc]— a, b, c को छोड़कर कोई भी कैरेक्टर।*— शून्य या अधिक दोहराव।+— एक या अधिक दोहराव।?— शून्य या एक दोहराव।{n,m}— n से m तक दोहराव।^— स्ट्रिंग की शुरुआत।$— स्ट्रिंग का अंत।|— लॉजिकल OR।()— कैप्चर ग्रुप।
जावा में एस्केपिंग: जावा स्ट्रिंग लिटरल में, बैकस्लैश \\ एक एस्केप कैरेक्टर है। regex में \\d पास करने के लिए, आपको "\\\\d" लिखना होगा। डॉट के लिए — "\\\\."।
2. Pattern और Matcher क्लासेस
जावा में रेगुलर एक्सप्रेशन के साथ काम करना पैटर्न कम्पाइल करने से शुरू होता है:
import java.util.regex.Pattern;import java.util.regex.Matcher;
public class RegexExample { public static void main(String[] args) { // पैटर्न कम्पाइल करें Pattern pattern = Pattern.compile("\\\\d+"); // स्ट्रिंग के लिए Matcher बनाएँ Matcher matcher = pattern.matcher("मूल्य: 150 रुपये, छूट 20%"); // सभी मिलान खोजें while (matcher.find()) { System.out.println("मिला: " + matcher.group()); } }}आउटपुट:
मिला: 150मिला: 20Matcher की मुख्य मेथड्स:
find()— अगला मिलान ढूँढता है (कई बार कॉल किया जा सकता है)।matches()— जाँचता है कि पूरी स्ट्रिंग पैटर्न से मेल खाती है या नहीं (पूर्ण मिलान आवश्यक है)।lookingAt()— जाँचता है कि स्ट्रिंग पैटर्न से शुरू होती है या नहीं।group()— मिली हुई सबस्ट्रिंग (या विशिष्ट ग्रुप) लौटाता है।groupCount()— कैप्चर ग्रुप की संख्या।
3. व्यावहारिक उदाहरण
3.1. ईमेल पता सत्यापन
जाँचें कि क्या स्ट्रिंग एक मान्य ईमेल है (सरलीकृत संस्करण):
public class EmailValidator { public static boolean isValidEmail(String email) { String regex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(email); return matcher.matches(); }
public static void main(String[] args) { System.out.println(isValidEmail("test@example.com")); // true System.out.println(isValidEmail("invalid-email")); // false }}पैटर्न की व्याख्या:
^[a-zA-Z0-9._%+-]+— लोकल पार्ट (अक्षर, अंक, डॉट, अंडरस्कोर आदि)।@— @ प्रतीक।[a-zA-Z0-9.-]+— डोमेन (अक्षर, अंक, डॉट, हाइफ़न)।\\\\.[a-zA-Z]{2,}$— डॉट और टॉप-लेवल डोमेन (कम से कम 2 कैरेक्टर)।