Lecții din modul (4/4)
Priviți în jur în practică
Să punem toate cele patru forme de privire în jur împreună în scenarii din lumea reală. Privirea în jur strălucește atunci când trebuie să:
- Extrageți o valoare fără contextul care o identifică.
- Validați un șir împotriva mai multor condiții independente.
- Filtrați potrivirile care îndeplinesc unele condiții, dar nu altele.
Validarea parolei
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,}Fiecare anticipare verifică o condiție, începând de la început (^). Ei sunt
toate cu latime zero: motorul ramane in pozitia 0 si apoi consuma cu
.{8,}$.
Extragerea între delimitatori
Pattern: (?<=\().+?(?=\))
Sample: Funzione foo(bar) e baz(qux, qix)
Match: "bar", "quux, qix" (without parentheses)Lookbehind + lookahead + lazy quantifier: extrage conținutul ** din interior parantezele** fără a le include.
Combinând privirea înainte și în urmă
Folosirea împreună cu privirea înainte și în urmă permite izolarea șirurilor care se află în anumite etichete sau formate (de exemplu, extragerea textului între două etichete fără a include etichetele în potrivirea finală). Acest lucru evită operațiunile ulterioare de curățare a șirurilor.
Încearcă
Extrageți valoarea fiecărei atribuiri `key=value` din jurnal: NUMAI valorile (fără chei, fără `=`). Valorile pot conține litere și cifre.
Afișează indiciu
Mutați `=` în interiorul unui lookbehind (?<==): în acest fel potrivirea conține doar valoarea.
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Găsiți ce cuvinte au cel puțin O literă mare ȘI cel puțin O cifră (în orice ordine), localizându-le în text.
Afișează indiciu
Privire dublă la început: (?=\\w*[A-Z])(?=\\w*\\d). Apoi consumați cuvântul cu \\w+.
Soluție disponibilă după 3 încercări
Provocare suplimentară
Extract only numerical digits that are enclosed exactly between parentheses, e.g. extract `102` from `(102)` without capturing the parentheses.
Afișează indiciu
Combine a positive lookbehind (?<=\( ) for the open parenthesis and a positive lookahead (?=\) ) for the closed one.
Soluție disponibilă după 3 încercări