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

सकारात्मक दृष्टिकोण: `(?=...)`

एक सकारात्मक भविष्य (?=...) एक शून्य-चौड़ाई दावा है: यह जाँचता है कि एक निश्चित पैटर्न वर्तमान स्थिति का अनुसरण करता है, लेकिन ** करता है उन वर्णों का उपभोग न करें**

Code
Pattern: \d+(?= euro)
Sample:  Prezzo 100 euro, sconto 25 euro, totale 75 dollari.
                ^^^                 ^^

आगे देखने के लिए (?= euro) के लिए आवश्यक है कि अंकों के बाद euro हो, लेकिन मिलान में केवल अंक शामिल हैं. 75 dollari मेल नहीं खाता (कोई euro नहीं)।

क्यों "शून्य-चौड़ाई"

भविष्य की स्थिति को स्थिति पर एक शर्त के रूप में सोचें, न कि एक के रूप में मैच का हिस्सा:

  • मैच आगे देखने से पहले रुक जाता है।
  • स्थिति "मैच के बाद" लुकहेड द्वारा निरीक्षण किए गए पाठ की शुरुआत है।
  • g ध्वज के साथ अगला मैच प्रयास वहीं से फिर से शुरू होगा।

यह इसे संदर्भ के बिना मूल्य निकालने: कीमतों के लिए एकदम सही बनाता है मुद्रा के बिना, विराम चिह्न से पहले शब्द, इत्यादि।

लुकहेड सुविधाएँ और शून्य-चौड़ाई स्कैन

सकारात्मक लुकहेड (?=...) गारंटी देता है कि निर्दिष्ट पैटर्न वर्तमान बिंदु का अनुसरण करता है, लेकिन स्कैनिंग लुकहेड से पहले की स्थिति से शुरू होती है। यह पाठ के उन हिस्सों का "उपभोग" करने से रोकता है जिनकी बाद के मैचों के लिए आवश्यकता हो सकती है।

इसे अजमाएं

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

केवल यूरो कीमतों के अंक निकालें ('यूरो' के बाद अंकों का क्रम)। मैच में कोई मुद्रा नहीं.

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

'यूरो' को आगे की ओर देखें (?= यूरो) के अंदर ले जाएँ: स्ट्रिंग मैच का हिस्सा नहीं होगी।

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

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

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

प्रत्येक शब्द को तुरंत उसके बाद एक कोलन `:` खोजें (लेकिन मिलान में कोलन को शामिल किए बिना)।

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

वही तर्क: `:` मैच में नहीं है, लेकिन यह एक स्थिति की स्थिति है।

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

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

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

Find every word (e.g. function name) followed immediately by an open parenthesis `(`, excluding the parenthesis from the match.

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

\\( (खुले कोष्ठक से बच गए) को सकारात्मक लुकहेड (?=...) के अंदर ले जाएं।

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