मुख्य सामग्री पर जाएं
मॉड्यूल 1 · पाठ 4 का 4पाठ्यक्रम में 4/32~10 min
मॉड्यूल पाठ (4/4)

मेटा-वर्णों से बचना

रेगेक्स में कुछ वर्णों का एक विशेष अर्थ होता है: उन्हें कहा जाता है मेटा-अक्षर। यदि आप शाब्दिक चरित्र (उदाहरण के लिए वास्तविक) से मेल खाना चाहते हैं ., एक वास्तविक +, एक वास्तविक कोष्ठक) आपको उनके उपसर्ग में एक लगाना होगा बैकस्लैश \, जो उनसे बच जाता है।

याद रखने योग्य मेटा-अक्षर बारह हैं:

Code
.  *  +  ?  ^  $  |  \  (  )  [  ]  {  }  /

(/ वास्तव में एक इंजन मेटा-कैरेक्टर नहीं है, लेकिन इससे बचना चाहिए जावास्क्रिप्ट शाब्दिक संकेतन /.../।)

Code
Pattern: \$\d+\.\d\d
Sample:  Prezzi: $9.99, $12.50, totale $22.49.
                 ^^^^^  ^^^^^^         ^^^^^^

यहां हम मिलान करने के लिए $ (एंड-ऑफ़-स्ट्रिंग एंकर) और . (वाइल्डकार्ड) से बचते हैं मूल्य प्रारूप में शाब्दिक अक्षर "डॉलर + संख्या + बिंदु + दो अंक"।

जेएस स्ट्रिंग्स में डबल बैकस्लैश

जब आप जावास्क्रिप्ट स्ट्रिंग के अंदर एक पैटर्न लिखते हैं (जैसे आप हमारे में करते हैं)। अभ्यास) बैकस्लैश दोगुना होना चाहिए। JS स्ट्रिंग '\\d' में शामिल है दो अक्षर (\ और d) और बिल्कुल रेगेक्स पैटर्न \d है।

JS
const re1 = /\d+/; // literal notation: a single backslash
const re2 = new RegExp('\\d+'); // string: double backslash

पाठ्यक्रम संपादक पैटर्न दिखाता है पहले से ही डिकोड किया गया (आप एक एकल देखते हैं)। \d); आपको स्वयं कुछ भी दोगुना करने की आवश्यकता नहीं है।

12 विशेष मेटा-अक्षर

इंजन में विशेष अर्थ वाले अक्षर बिल्कुल 12 हैं: \\\ ^ $ . | ? * + ( ) [ {। यदि आप उन्हें शाब्दिक पाठ के रूप में मिलाना चाहते हैं, तो आपको उनके पहले बैकस्लैश लगाना होगा। कुछ परिवेशों में (जैसे गैर-कच्ची JS स्ट्रिंग्स), आपको बैकस्लैश (\\\\) को दोगुना करने की आवश्यकता हो सकती है।

इसे अजमाएं

व्यायाम#regex.m1.l4.e1
प्रयास: 0लोड हो रहा है...

प्रत्येक कीमत `$N.NN` प्रारूप (डॉलर, एक या अधिक अंक, बिंदु, दो अंक) में खोजें। `$` और `.` से बचना याद रखें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

$ को \\$ के रूप में, बिंदु को \\ के रूप में छोड़ा जाना चाहिए। - अन्यथा बिंदु किसी भी चीज़ से मेल खाता है।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम की समीक्षा करें

व्यायाम#regex.m1.l4.e2
प्रयास: 0लोड हो रहा है...

पाठ में प्रत्येक शाब्दिक प्रश्न चिह्न `?` ढूंढें। `?` एक मेटा-कैरेक्टर है: इससे बचना चाहिए।

संपादक लोड हो रहा है...
संकेत दिखाएँ

बिना किसी पलायन के, ? एक क्वांटिफ़ायर (मॉड्यूल 2) होगा। इसके सामने \\ लगाएं.

3 प्रयासों के बाद समाधान उपलब्ध है

अतिरिक्त चुनौती

व्यायाम#regex.m1.l4.e3
प्रयास: 0लोड हो रहा है...

Find all occurrences of `.tar.gz` in the text, ensuring that the dots are matched literally.

संपादक लोड हो रहा है...
संकेत दिखाएँ

इससे बचने के लिए प्रत्येक बिंदु से पहले एक बैकस्लैश डालें।

3 प्रयासों के बाद समाधान उपलब्ध है