Leçons du module (3/4)
Lookbehind : `(?<=...)` `(?<!...)`
Les lookbehind sont la version miroir du lookahead : ils regardent avant de la position actuelle, toujours à largeur nulle.
(?<=...)-- lookbehind positif : le motif doit être là en premier.(?<!...)-- lookbehind négatif : le motif ne doit PAS être là en premier.
Pattern: (?<=\$)\d+
Sample: Costo $100, sconto -25, totale $75.
^^^ ^^Le $ n'est pas dans la correspondance, mais sert de condition : seuls les chiffres correspondent
précédé du signe dollar.
Regardez derrière le négatif
Pattern: (?<!\w)\d+
Sample: Codice abc123 e numero 456.
^^^(?<!\w) nécessite qu'il n'y ait PAS de caractère de mot avant les chiffres :
abc123 est exclu (avant 123 il y a c, un \w), 456 matcha (avant
il y a un espace).
Différence clé par rapport au groupe sans capture
\\$\\d+ matcha "$100": il match include il dollaro.
(?<=\\$)\\d+ matcha "100": il match contiene SOLO le cifre.Si vous devez extraire la valeur "propre" sans le préfixe, regardez derrière c'est le bon choix.
Compatibilité d'analyse JavaScript
Les (?<=...) positifs et négatifs (?<!...) vous permettent de voir ce qui précède votre position actuelle. En JavaScript, ils sont pris en charge à partir de ES2018 ; dans les anciens navigateurs ou les anciens moteurs Node.js, ils pouvaient provoquer des erreurs de compilation d'expressions régulières.
Essayez-le vous-même
Estrai solo l'importo numerico (senza il simbolo $) dai prezzi del testo.
Afficher l'indice
Sposta \\$ dentro un lookbehind positivo (?<=\\$): condizione di posizione, non parte del match.
Solution disponible après 3 tentatives
Exercice de révision
Trova ogni sequenza di cifre NON preceduta da una lettera o cifra (cioe' numeri 'isolati', non parti di codice come `abc123`).
Afficher l'indice
Usa lookbehind negativo (?<!\\w) per escludere se prima c'e' una lettera o cifra.
Solution disponible après 3 tentatives
Défi supplémentaire
Trova solo le cifre dei numeri negativi (cifre precedute dal segno `-`), escludendo il segno meno dal match.
Afficher l'indice
Sposta il segno meno - all'interno di un lookbehind positivo (?<=-).
Solution disponible après 3 tentatives