L'ensemble d'expressions régulières négatives ne fonctionne pas dans Go
Un utilisateur a rencontré un problème où son expression régulière se comporte différemment dans Go par rapport aux analyseurs d'expressions régulières en ligne . L'objectif est de faire correspondre les noms de fichiers avec des conditions spécifiques, en excluant ceux portant certaines extensions de fichiers. Cependant, l'utilisation d'un ensemble nié (?!) dans l'expression ne produit pas les résultats souhaités dans Go.
Le moteur RE2 de Go et le manque de prise en charge Lookaround
Le La bibliothèque standard Go utilise le moteur RE2, qui ne prend pas en charge certaines fonctionnalités, notamment les opérateurs d'anticipation (?!). Cela signifie que l'opérateur d'anticipation nié utilisé dans l'expression de l'utilisateur n'est pas pris en charge dans Go.
Solution alternative utilisant une expression simplifiée
Pour obtenir la fonctionnalité souhaitée, l'utilisateur peut simplifier l'expression correspondant aux caractéristiques souhaitées du nom de fichier. Au lieu d'utiliser un ensemble nié, un modèle plus explicite peut être utilisé, tel que .w{3}$:
Cette expression simplifiée garantit que le nom du fichier se termine par une extension de fichier à trois caractères sans avoir besoin d'un ensemble nié.
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!