Javascript Regex : alternative aux assertions Lookbehind
Les implémentations Regex en Javascript n'ont pas le concept d'assertions lookbehind. Cela pose un défi dans la construction d'expressions régulières qui nécessitent cette fonctionnalité. Heureusement, il existe des méthodes alternatives pour obtenir des résultats similaires.
Considérez l'expression régulière suivante :
(?<!filename)\.js$
Cette expression régulière correspond à ".js" à la fin d'une chaîne, à l'exclusion de "filename.js ". Cependant, sans prise en charge du lookbehind en Javascript, nous avons besoin d'une alternative.
L'une de ces alternatives consiste à étendre l'assertion lookbehind en une série de vérifications explicites de chaque caractère de la chaîne :
^(?:(?!filename\.js$).)*\.js$
Cette regex se décompose comme suit :
Alternativement, une solution plus simple est disponible :
^(?!.*filename\.js$).*\.js$
Cette expression régulière vérifie essentiellement que la chaîne entière ne contient pas "filename.js" avant de correspondre à ".js".
En tirant parti de ces alternatives, nous pouvons implémenter une fonctionnalité d'expression régulière semblable aux assertions lookbehind en Javascript.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!