- 1 1. परिचय
- 2 2. MySQL में रेगुलर एक्सप्रेशन की बुनियादें
- 3 3. MySQL 8.0 में जोड़े गए रेगुलर एक्सप्रेशन फ़ंक्शन
- 4 4. रेगुलर एक्सप्रेशन के व्यावहारिक उपयोग केस
- 5 5. महत्वपूर्ण विचार और सर्वोत्तम प्रथाएँ
- 6 6. निष्कर्ष
- 7 7. अक्सर पूछे जाने वाले प्रश्न (FAQ)
- 7.1 प्रश्न 1. MySQL में REGEXP और LIKE में क्या अंतर है?
- 7.2 Q2. मैं प्रदर्शन को कैसे बेहतर बना सकता हूँ?
- 7.3 Q3. मैं मल्टीबाइट अक्षरों को कैसे संभालूँ?
- 7.4 Q4. क्या आप नियमित अभिव्यक्तियों का उपयोग करके प्रतिस्थापन का एक उदाहरण दिखा सकते हैं?
- 7.5 Q5. तारीख़ फ़ॉर्मेट को बदलने के लिए क्वेरी क्या है?
- 7.6 Q6. REGEXP का उपयोग करके कई शर्तें कैसे निर्दिष्ट करूँ?
- 7.7 Summary
1. परिचय
MySQL रेगुलर एक्सप्रेशन (REGEXP) क्या है?
MySQL रेगुलर एक्सप्रेशन डेटाबेस के भीतर स्ट्रिंग्स को लचीले ढंग से खोजने और संशोधित करने के लिए शक्तिशाली उपकरण हैं। ये मानक स्ट्रिंग खोजों से कठिन उन्नत पैटर्न मिलान को सक्षम करते हैं, जिससे आप विशिष्ट स्वरूप या शर्तों से मेल खाने वाला डेटा निकाल सकते हैं।
उदाहरण के लिए, आप आसानी से “ऐसे नाम जो किसी विशिष्ट अक्षर से शुरू होते हैं” या “केवल संख्यात्मक मानों वाले कोड” जैसे डेटा निकाल सकते हैं। यह कार्यक्षमता डेटा सफाई और जटिल खोज शर्तों को संभालने में विशेष रूप से उपयोगी है।
MySQL में रेगुलर एक्सप्रेशन के उपयोग के लाभ
- जटिल खोज शर्तों का समर्थन
- आप जटिल स्ट्रिंग पैटर्न निर्दिष्ट कर सकते हैं जिन्हें मानक LIKE ऑपरेटर द्वारा संभाला नहीं जा सकता।
- डेटा का बैच एक्सट्रैक्शन और प्रतिस्थापन
- उदाहरण के लिए, आप केवल उस डेटा को निकाल सकते हैं जो विशिष्ट स्वरूप से मेल खाता है या स्ट्रिंग के किसी भाग को बदल सकते हैं।
- MySQL 8.0 और बाद के संस्करणों में उन्नत सुविधाएँ
- REGEXP_LIKE और REGEXP_SUBSTR जैसी नई फ़ंक्शन जोड़े गए हैं, जो अधिक लचीले संचालन को सक्षम करते हैं।
इस लेख का उद्देश्य
यह लेख MySQL रेगुलर एक्सप्रेशन (REGEXP) के बुनियादी उपयोग से लेकर उन्नत उदाहरणों और महत्वपूर्ण विचारों तक सब कुछ समझाता है। चाहे आप शुरुआती हों या अर्ध-प्रोफेशनल, आपको वास्तविक दुनिया के अनुप्रयोगों के लिए उपयोगी व्यावहारिक अंतर्दृष्टि मिलेगी।
अगले भाग में, हम MySQL में रेगुलर एक्सप्रेशन की मूलभूत बातें समझाएंगे।
2. MySQL में रेगुलर एक्सप्रेशन की बुनियादें
REGEXP ऑपरेटर क्या है?
MySQL में, REGEXP ऑपरेटर रेगुलर एक्सप्रेशन के साथ काम करने के लिए उपयोग किया जाता है। यह ऑपरेटर निर्धारित करता है कि कोई मान निर्दिष्ट पैटर्न से मेल खाता है या नहीं। अतिरिक्त रूप से, RLIKE REGEXP का उपनाम के रूप में कार्य करता है।
निम्नलिखित उदाहरण यह जांचता है कि कोई स्ट्रिंग पैटर्न “abc” से मेल खाती है या नहीं।
SELECT * FROM users WHERE name REGEXP 'abc';
REGEXP ऑपरेटर की बुनियादी सिंटैक्स
रेगुलर एक्सप्रेशन के साथ खोज करने की बुनियादी सिंटैक्स इस प्रकार है:
SELECT * FROM table_name WHERE column_name REGEXP 'pattern';
सामान्य REGEXP पैटर्न सूची
| Symbol | Description | Example |
|---|---|---|
^ | Matches the beginning of a line | ^abc → Strings that start with “abc” |
$ | Matches the end of a line | abc$ → Strings that end with “abc” |
. | Matches any single character | a.c → Matches “abc”, “adc”, etc. |
| | OR (matches either pattern) | abc|xyz → Matches “abc” or “xyz” |
[] | Matches any one of the specified characters | [abc] → Matches “a”, “b”, or “c” |
* | Matches zero or more repetitions | ab*c → Matches “ac”, “abc”, “abbc”, etc. |
REGEXP और LIKE के बीच अंतर
| Feature | LIKE | REGEXP |
|---|---|---|
| Flexibility | Supports only wildcards (% and _) | Supports advanced pattern matching |
| Performance | Fast | May be slightly slower for complex patterns |
व्यावहारिक उदाहरण: REGEXP के साथ खोज
उदाहरण 1: वैध ईमेल स्वरूप की खोज
SELECT * FROM users WHERE email REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';
उदाहरण 2: केवल संख्याएँ रखने वाले फ़ील्ड की खोज
SELECT * FROM orders WHERE order_id REGEXP '^[0-9]+$';
सारांश
इस भाग में, हमने MySQL में REGEXP ऑपरेटर के बुनियादी उपयोग और पैटर्न को कवर किया। यह सरल खोजों से लेकर लचीले डेटा संचालन के लिए उन्नत पैटर्न मिलान तक सब कुछ सक्षम बनाता है।
3. MySQL 8.0 में जोड़े गए रेगुलर एक्सप्रेशन फ़ंक्शन
REGEXP_LIKE() – रेगुलर एक्सप्रेशन का उपयोग करके मिलान जाँच
REGEXP_LIKE(string, pattern [, flags])
उदाहरण:
SELECT REGEXP_LIKE('abcdef', 'abc');
परिणाम: 1 (मिलता है)
REGEXP_INSTR() – मिलान स्थिति खोजें
REGEXP_INSTR(string, pattern [, start_position, occurrence, flags, return_type])
उदाहरण:
SELECT REGEXP_INSTR('abcdef', 'cd');
परिणाम: 3
REGEXP_SUBSTR() – मिलते हुए उपस्ट्रिंग को निकालें
REGEXP_SUBSTR(string, pattern [, start_position, occurrence, flags])
उदाहरण:
SELECT REGEXP_SUBSTR('abc123def', '[0-9]+');
परिणाम: 123
REGEXP_REPLACE() – रेगुलर एक्सप्रेशन का उपयोग करके प्रतिस्थापित करें
REGEXP_REPLACE(string, pattern, replacement [, start_position, occurrence, flags])
उदाहरण:
SELECT REGEXP_REPLACE('Item123Price456', '[0-9]', '#');
परिणाम: Item###Price###
सारांश
MySQL 8.0 में जोड़े गए रेगुलर एक्सप्रेशन फ़ंक्शन विस्तृत और लचीले स्ट्रिंग संचालन को सक्षम बनाते हैं। इन्हें प्रभावी ढंग से उपयोग करके आप डेटा को अधिक कुशलता से निकाल और रूपांतरित कर सकते हैं।

4. रेगुलर एक्सप्रेशन के व्यावहारिक उपयोग केस
विशिष्ट पैटर्न से मेल खाने वाले डेटा की खोज
उदाहरण 1: ईमेल पता प्रारूप का पता लगाएँ
SELECT * FROM users WHERE email REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';
उदाहरण 2: फ़ोन नंबर प्रारूप का पता लगाएँ
SELECT * FROM contacts WHERE phone REGEXP '^[0-9]{3}-[0-9]{4}-[0-9]{4}$';
उपस्ट्रिंग निकालें
उदाहरण 1: संख्यात्मक भाग निकालें
SELECT REGEXP_SUBSTR('abc123def456', '[0-9]+');
परिणाम: 123
डेटा बदलें
उदाहरण 1: संख्याओं को “#” से बदलें
SELECT REGEXP_REPLACE('Item123Price456', '[0-9]', '#');
परिणाम: Item###Price###
डेटा सत्यापन और सफ़ाई
उदाहरण 1: अमान्य ईमेल पते का पता लगाएँ
SELECT * FROM users WHERE email NOT REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';
सारांश
इन उदाहरणों के साथ, आप खोज, निष्कर्षण, प्रतिस्थापन और डेटा सत्यापन जैसे कार्यों को कुशलतापूर्वक संभाल सकते हैं।
5. महत्वपूर्ण विचार और सर्वोत्तम प्रथाएँ
मल्टीबाइट कैरेक्टर्स (फुल-विड्थ कैरेक्टर्स) को संभालना
डिफ़ॉल्ट रूप से MySQL रेगुलर एक्सप्रेशन्स बाइट आधार पर मूल्यांकित होते हैं, इसलिए जापानी जैसे मल्टीबाइट कैरेक्टर्स को संभालते समय विशेष सावधानी आवश्यक है।
समाधान:
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
प्रदर्शन पर प्रभाव
समस्या: रेगुलर एक्सप्रेशन्स जटिल प्रोसेसिंग शामिल करते हैं, इसलिए बड़े डेटासेट की खोज करते समय प्रदर्शन घट सकता है।
समाधान:
SELECT * FROM users WHERE email LIKE '%@example.com' AND email REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';
ReDoS (रेगुलर एक्सप्रेशन डिनायल ऑफ़ सर्विस) से सुरक्षा
समस्या: दुर्भावनापूर्ण पैटर्न अत्यधिक सिस्टम लोड का कारण बन सकते हैं।
समाधान:
- संभव हो तो सरल पैटर्न का उपयोग करें।
- इनपुट वैधता को मजबूत करें।
- क्वेरी निष्पादन समय की निगरानी करें।
संस्करण संगतता जाँचें
नए रेगुलर एक्सप्रेशन फ़ंक्शन MySQL संस्करण 8.0 से पहले उपलब्ध नहीं हैं। कार्यान्वयन से पहले हमेशा अपने पर्यावरण का संस्करण सत्यापित करें।
स्टेजिंग पर्यावरण में परीक्षण करें
क्वेरी व्यवहार और प्रदर्शन का पूर्व परीक्षण करें, जिसमें किनारे के मामलों और अमान्य मानों को कैसे संभाला जाता है, शामिल है।
सारांश
इन सर्वोत्तम प्रथाओं को ध्यान में रखें ताकि आप प्रदर्शन और सुरक्षा दोनों को ध्यान में रखते हुए रेगुलर एक्सप्रेशन्स को सुरक्षित और कुशलता से उपयोग कर सकें।
6. निष्कर्ष
मुख्य बिंदु
- बुनियादी ऑपरेशन्स और रेगुलर एक्सप्रेशन पैटर्न सीखकर आप सरल खोज से लेकर जटिल डेटा निष्कर्षण तक सब कुछ संभाल सकते हैं।
- MySQL 8.0 में प्रस्तुत रेगुलर एक्सप्रेशन फ़ंक्शन और भी लचीले ऑपरेशन्स की अनुमति देते हैं।
- व्यावहारिक उदाहरणों का उपयोग वास्तविक दुनिया के डेटा हेरफेर में दक्षता बढ़ाता है।
- सर्वोत्तम प्रथाओं को लागू करने से सुरक्षित और उच्च-प्रदर्शन वाली क्वेरीज़ सुनिश्चित होती हैं।
MySQL रेगुलर एक्सप्रेशन्स के उपयोग के लाभ
- उन्नत खोज क्षमताएँ: सरल स्ट्रिंग खोजों से कठिन स्थितियों को आसानी से परिभाषित करें।
- डेटा प्रोसेसिंग दक्षता में सुधार: निष्कर्षण, प्रतिस्थापन और सत्यापन सीधे SQL में पूरा किया जा सकता है।
- व्यापक अनुप्रयोग क्षेत्र: डेटा सफ़ाई से लेकर लॉग विश्लेषण तक सबके लिए उपयोगी।
सीखना और लागू करना जारी रखने के तरीके
- वास्तविक डेटासेट का उपयोग करके क्वेरीज़ का अभ्यास करें और अपनी समझ को गहरा करें।
- नवीनतम संस्करण की सुविधाओं का सक्रिय रूप से उपयोग करके प्रदर्शन को अनुकूलित करें।
- सुरक्षा और गति बनाए रखने के लिए नियमित रूप से अपनी क्वेरीज़ की समीक्षा करें।
अंतिम विचार
MySQL रेगुलर एक्सप्रेशन्स में महारत हासिल करके आप संचालन दक्षता में सुधार कर सकते हैं और अपने डेटा विश्लेषण क्षमताओं को बढ़ा सकते हैं।
7. अक्सर पूछे जाने वाले प्रश्न (FAQ)
प्रश्न 1. MySQL में REGEXP और LIKE में क्या अंतर है?
उ: REGEXP उन्नत पैटर्न मिलान का समर्थन करता है, जबकि LIKE मुख्यतः आंशिक स्ट्रिंग मिलान के लिए उपयोग किया जाता है।
SELECT * FROM users WHERE email LIKE '%example.com';
SELECT * FROM users WHERE email REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';
Q2. मैं प्रदर्शन को कैसे बेहतर बना सकता हूँ?
A.
- फ़िल्टर शर्तों को पहले लागू करें।
- इंडेक्स का प्रभावी उपयोग करें।
- क्वेरीज़ को सरल और अनुकूलित रखें।
Q3. मैं मल्टीबाइट अक्षरों को कैसे संभालूँ?
A. UTF-8 समर्थन को कॉन्फ़िगर करें।
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Q4. क्या आप नियमित अभिव्यक्तियों का उपयोग करके प्रतिस्थापन का एक उदाहरण दिखा सकते हैं?
A. संख्याओं को “#” से बदलें।
SELECT REGEXP_REPLACE('Item123Price456', '[0-9]', '#');
Q5. तारीख़ फ़ॉर्मेट को बदलने के लिए क्वेरी क्या है?
A. “YYYY/MM/DD” को “YYYY-MM-DD” में बदलें।
SELECT REGEXP_REPLACE('2023/12/20', '/', '-');
Q6. REGEXP का उपयोग करके कई शर्तें कैसे निर्दिष्ट करूँ?
A. पाइप प्रतीक (|) का उपयोग करें।
SELECT * FROM products WHERE name REGEXP 'phone|tablet';
Summary
FAQ अनुभाग ने सामान्य प्रश्नों को संबोधित किया और व्यावहारिक क्वेरी उदाहरण प्रदान किए।


