Lecții din modul (3/4)
Privește în urmă: `(?<=...)` `(?<!...)`
Lookbacks sunt imaginea în oglindă a lookaheads: se uită înainte poziția curentă, tot cu lățime zero.
(?<=...)-- privire pozitivă: modelul trebuie să preceadă.(?<!...)-- aspect negativ din urmă: modelul NU trebuie să preceadă.
Pattern: (?<=\$)\d+
Sample: Costo $100, sconto -25, totale $75.
^^^ ^^$ nu este în potrivire, dar funcționează ca condiție: doar cifre
precedat de potrivirea semnului dolarului.
Privire negativă în urmă
Pattern: (?<!\w)\d+
Sample: Codice abc123 e numero 456.
^^^(?<!\w) necesită ca înaintea cifrelor să nu existe niciun caracter de cuvânt:
abc123 este exclus (înainte de 123 există c, un \w), 456 (înainte de
există un spațiu).
Diferența cheie față de grupul fără captură
\\$\\d+ matches "$100": the match includes the dollar sign.
(?<=\\$)\\d+ matches "100": the match contains ONLY the digits.Dacă trebuie să extrageți valoarea „curată” fără prefix, uitați în urmă este alegerea corectă.
Compatibilitate din urmă în JavaScript
(?<=...) pozitiv și (?<!...) negativ, verifică ce precede poziția curentă. În JavaScript, acestea sunt acceptate începând cu ES2018; în browserele mai vechi sau motoarele vechi Node.js, acestea ar provoca erori de compilare de sintaxă.
Încearcă
Extrageți doar suma numerică (fără semnul $) din prețurile din text.
Afișează indiciu
Mutați \\$ într-o privire pozitivă în urmă (?<=\\$): o condiție de poziție, care nu face parte din potrivire.
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Găsiți fiecare succesiune de cifre NU precedate de o literă sau cifră (adică numere „izolate”, nu părți de cod precum „abc123”).
Afișează indiciu
Utilizați o privire negativă în urmă (?<!\\w) pentru a exclude când există o literă sau o cifră înainte.
Soluție disponibilă după 3 încercări
Provocare suplimentară
Find only the digits of negative numbers (digits preceded by the `-` sign), excluding the minus sign from the match.
Afișează indiciu
Mutați semnul minus - în interiorul unei priviri pozitive în urmă (?<=-).
Soluție disponibilă după 3 încercări