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

मूल प्रतिस्थापन और `$1`

जावास्क्रिप्ट में, String.prototype.replace(regex, replacement) एक कार्य करता है पैटर्न मिलान करता है और प्रत्येक मिलान को दिए गए स्ट्रिंग से बदल देता है। g के साथ ध्वज यह सभी मिलानों को प्रतिस्थापित करता है; इसके बिना, केवल पहला. replaceAll वैश्विक व्यवहार को बाध्य करता है (और रेगेक्स पर g ध्वज की आवश्यकता होती है)।

JS
'ciao mondo'.replace(/o/g, '0'); // "cia0 m0nd0"
'Mario Rossi'.replace(/(\w+) (\w+)/, '$2 $1'); // "Rossi Mario"

प्रतिस्थापन स्ट्रिंग में संदर्भ

प्रतिस्थापन स्ट्रिंग के अंदर, ये विशेष हैं:

  • $1, $2, \u2026 -- रेगेक्स के क्रमांकित समूह का बैकरेफ़रेंस।
  • $<name> -- नामित समूह का पिछला संदर्भ।
  • $& -- संपूर्ण मैच।
  • `$`` -- text before the match.
  • $' -- text after the match.
  • $$ -- a single literal $।
JS
const data = '2024-03-15';
data.replace(/(\d{4})-(\d{2})-(\d{2})/, '$3/$2/$1');
// "15/03/2024"

आदेश को उलट कर दिनांक को पुन: स्वरूपित करें। रेगेक्स में 3 समूह हैं, और में प्रतिस्थापन स्ट्रिंग में आप उन्हें $1, $2, $3 के रूप में संदर्भित करते हैं।

प्रतिस्थापन में विशेष सन्दर्भ

$1 और $2 के अलावा, आप संपूर्ण मिलान किए गए टेक्स्ट को सम्मिलित करने के लिए $& का उपयोग कर सकते हैं, इसके बाद आने वाले सभी टेक्स्ट के लिए $ for all text preceding the match, and$'` का उपयोग कर सकते हैं। यह जेएस कोड लिखे बिना भी समृद्ध प्रतिस्थापन की अनुमति देता है।

इसे अजमाएं

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

तीन समूहों (वर्ष, माह, दिन) के साथ YYYY-MM-DD प्रारूप में प्रत्येक तिथि खोजें। इस तरह आप DD/MM/YYYY प्राप्त करने के लिए रिप्लेस का उपयोग कर सकते हैं।

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

(...) के साथ कैप्चर किए गए तीन समूहों के अंदर \\d+ को \\d{4}, \\d{2}, \\d{2} से बदलें।

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

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

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

'फर्स्ट लास्ट' को दो नामित समूहों `nome` और `cognome` के रूप में खोजें, ताकि आप `$<cognome>, $<nome>` का उपयोग करके इसे `cognome, nome` के रूप में फिर से लिख सकें।

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

(?<nome>\\w+) और (?<cognome>\\w+) को \\s+ से अलग करके उपयोग करें।

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

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

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

Create a capture pattern to reverse the order of first and last name from `Lastname, Firstname` format to `Firstname Lastname`.

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

Use two capture groups for last and first name; the replacement will be performed via $2 $1.

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