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

व्यवहार में चारों ओर देखो

आइए वास्तविक दुनिया के परिदृश्यों में लुकअराउंड के सभी चार रूपों को एक साथ रखें। जब आपको आवश्यकता हो तो लुकअराउंड चमकते हैं:

  1. संदर्भ के बिना एक मान निकालें जो इसकी पहचान करता है।
  2. एकाधिक स्वतंत्र स्थितियों के विरुद्ध एक स्ट्रिंग को मान्य करें।
  3. फ़िल्टर ऐसे मिलान जो कुछ शर्तों को पूरा करते हैं लेकिन अन्य को नहीं।

पासवर्ड सत्यापन

Code
Pattern: ^(?=.*[A-Z])(?=.*\d)(?=.*[^a-zA-Z\d]).{8,}$
Checks:
  - at least one uppercase     (?=.*[A-Z])
  - at least one digit         (?=.*\d)
  - at least one symbol        (?=.*[^a-zA-Z\d])
  - minimum length 8           .{8,}

प्रत्येक लुकहेड शुरुआत (^) से शुरू करके एक शर्त की जाँच करता है। वे हैं सभी शून्य-चौड़ाई: इंजन 0 स्थिति पर रहता है और फिर उपभोग करता है .{8,}$.

सीमांकक के बीच निष्कर्षण

Code
Pattern: (?<=\().+?(?=\))
Sample:  Funzione foo(bar) e baz(qux, qix)
Match: "bar", "quux, qix" (without parentheses)

लुकबिहाइंड + लुकआहेड + आलसी क्वांटिफायर: अंदर की सामग्री को निकालता है कोष्ठक उन्हें शामिल किए बिना।

आगे देखो और पीछे देखो का संयोजन

लुकहेड और लुकबिहाइंड का एक साथ उपयोग करने से विशिष्ट टैग या प्रारूप के भीतर मौजूद स्ट्रिंग्स को अलग करने की अनुमति मिलती है (उदाहरण के लिए अंतिम मिलान में टैग को शामिल किए बिना दो टैग के बीच टेक्स्ट निकालना)। यह बाद के स्ट्रिंग क्लीनअप ऑपरेशन से बचता है।

इसे अजमाएं

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

लॉग से प्रत्येक `कुंजी=मान` असाइनमेंट का मान निकालें: केवल मान (कोई कुंजी नहीं, कोई `=` नहीं)। मानों में अक्षर और अंक हो सकते हैं.

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

`=` को लुकबैक (?<==) के अंदर ले जाएं: इस तरह मैच में केवल मान होता है।

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

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

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

पता लगाएं कि किन शब्दों में कम से कम एक बड़ा अक्षर और कम से कम एक अंक है (किसी भी क्रम में), उन्हें पाठ में ढूंढें।

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

शुरुआत में आगे की ओर डबल लुक: (?=\\w*[A-Z])(?=\\w*\\d). फिर \\w+ वाले शब्द का उपभोग करें।

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

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

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

Extract only numerical digits that are enclosed exactly between parentheses, e.g. extract `102` from `(102)` without capturing the parentheses.

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

Combine a positive lookbehind (?<=\( ) for the open parenthesis and a positive lookahead (?=\) ) for the closed one.

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