MySQL में, REGEXP_LIKE()
फ़ंक्शन का उपयोग यह निर्धारित करने के लिए किया जाता है कि स्ट्रिंग रेगुलर एक्सप्रेशन से मेल खाती है या नहीं।
फ़ंक्शन 1
लौटाता है यदि स्ट्रिंग प्रदान की गई नियमित अभिव्यक्ति से मेल खाती है, और 0
अगर ऐसा नहीं होता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
REGEXP_LIKE(expr, pat[, match_type])
जहां expr
इनपुट स्ट्रिंग है और pat
नियमित अभिव्यक्ति है जिसके लिए आप स्ट्रिंग का परीक्षण कर रहे हैं।
वैकल्पिक match_type
तर्क आपको नियमित अभिव्यक्ति को परिष्कृत करने की अनुमति देता है। उदाहरण के लिए, आप match_type
. का उपयोग कर सकते हैं केस-संवेदी मिलान निर्दिष्ट करने के लिए या नहीं।
उदाहरण 1 - मूल उपयोग
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT REGEXP_LIKE('Cat', '.*') Result;
परिणाम:
+--------+ | Result | +--------+ | 1 | +--------+
इस मामले में, हमारी नियमित अभिव्यक्ति किसी भी क्रम में किसी भी वर्ण को निर्दिष्ट करती है, इसलिए निश्चित रूप से हमें एक मैच मिलता है। फ़ंक्शन 1
लौटाता है एक मैच को इंगित करने के लिए।
उदाहरण 2 - कोई मिलान नहीं
यहां एक उदाहरण दिया गया है जहां इनपुट स्ट्रिंग रेगुलर एक्सप्रेशन से मेल नहीं खाती:
SELECT REGEXP_LIKE('Cat', 'b+') Result;
परिणाम:
+--------+ | Result | +--------+ | 0 | +--------+
इस मामले में, हमारा रेगुलर एक्सप्रेशन निर्दिष्ट करता है कि एक या अधिक b
होना चाहिए किसी भी क्रम में वर्ण। हमारे इनपुट स्ट्रिंग में यह वर्ण नहीं है और इसलिए 0
लौटा दिया गया है।
उदाहरण 3 - एक स्ट्रिंग की शुरुआत का मिलान करें
यहां एक उदाहरण दिया गया है जहां रेगुलर एक्सप्रेशन निर्दिष्ट करता है कि स्ट्रिंग कुछ वर्णों से शुरू होनी चाहिए:
SELECT REGEXP_LIKE('Cat', '^Ca') Result;
परिणाम:
+--------+ | Result | +--------+ | 1 | +--------+
और अगर कोई मैच नहीं होता है तो क्या होता है:
SELECT REGEXP_LIKE('Cat', '^Da') Result;
परिणाम:
+--------+ | Result | +--------+ | 0 | +--------+
उदाहरण 4 - एक डेटाबेस क्वेरी
इस फ़ंक्शन का उपयोग WHERE
. में किया जा सकता है डेटाबेस क्वेरीज़ का क्लॉज केवल उन्हीं पंक्तियों को लौटाता है जिनमें पैटर्न होता है:
SELECT AlbumId, AlbumName FROM Albums WHERE REGEXP_LIKE(AlbumName, '^Power');
परिणाम:
+---------+------------+ | AlbumId | AlbumName | +---------+------------+ | 1 | Powerslave | | 2 | Powerage | +---------+------------+
ये रही पूरी तालिका:
SELECT AlbumId, AlbumName FROM Albums;
परिणाम:
+---------+--------------------------+ | AlbumId | AlbumName | +---------+--------------------------+ | 1 | Powerslave | | 2 | Powerage | | 3 | Singing Down the Lane | | 4 | Ziltoid the Omniscient | | 5 | Casualties of Cool | | 6 | Epicloud | | 7 | Somewhere in Time | | 8 | Piece of Mind | | 9 | Killers | | 10 | No Prayer for the Dying | | 11 | No Sound Without Silence | | 12 | Big Swing Face | | 13 | Blue Night | | 14 | Eternity | | 15 | Scandinavia | | 16 | Long Lost Suitcase | | 17 | Praise and Blame | | 18 | Along Came Jones | | 19 | All Night Wrong | | 20 | The Sixteen Men of Tain | +---------+--------------------------+
उदाहरण 5 - match_type
तर्क
आप मिलान प्रकार निर्धारित करने के लिए एक अतिरिक्त तर्क प्रदान कर सकते हैं। यह आपको यह निर्दिष्ट करने की अनुमति देता है कि मैच केस-संवेदी है या नहीं, लाइन टर्मिनेटर शामिल करना है या नहीं, आदि।
केस-संवेदी मिलान और केस-संवेदी मिलान निर्दिष्ट करने का एक उदाहरण यहां दिया गया है:
SELECT REGEXP_LIKE('Cat', '^ca', 'c') 'Case-Sensitive', REGEXP_LIKE('Cat', '^ca', 'i') 'Case-Insensitive';
परिणाम:
+----------------+------------------+ | Case-Sensitive | Case-Insensitive | +----------------+------------------+ | 0 | 1 | +----------------+------------------+
match_type
तर्क में निम्नलिखित वर्ण हो सकते हैं:
c
- केस संवेदनशील मिलान।
i
- केस असंवेदनशील मिलान।
m
- बहु-पंक्ति मोड। स्ट्रिंग के भीतर लाइन टर्मिनेटर को पहचानें। डिफ़ॉल्ट व्यवहार केवल स्ट्रिंग एक्सप्रेशन के प्रारंभ और अंत में लाइन टर्मिनेटर का मिलान करना है।
n
.
चरित्र लाइन टर्मिनेटर से मेल खाता है। डिफ़ॉल्ट.
पंक्ति के अंत में रुकने के लिए मिलान।u
- यूनिक्स-ओनली लाइन एंडिंग्स। केवल न्यूलाइन कैरेक्टर को
.
,^
, और$
मैच ऑपरेटर।
अधिक उदाहरण
आप बेसिक रेगुलर एक्सप्रेशन के अधिक उदाहरण MySQL REGEXP उदाहरण पर देख सकते हैं। REGEXP
REGEXP_LIKE()
. का समानार्थी है , ताकि आप उदाहरणों का परस्पर उपयोग कर सकें।
MySQL दस्तावेज़ से रेगुलर एक्सप्रेशन सिंटैक्स भी देखें।