Assertions Lookbehind de longueur variable dans les expressions régulières
Les expressions régulières sont de puissants outils de correspondance de modèles, mais elles peuvent être limitées lorsqu'il s'agit de variables -longueur des assertions de recherche. Une assertion lookbehind vous permet de faire correspondre une chaîne en fonction d'une condition qui précède la correspondance. Cependant, les expressions régulières traditionnelles ne prennent en charge que les assertions lookbehind de longueur fixe.
Alternatives aux assertions lookbehind de longueur variable
Si vous devez effectuer des assertions lookbehind de longueur variable, il y a Il existe plusieurs alternatives :
Substitution par \K
Lors du remplacement de correspondances, vous pouvez utiliser \K pour exclure des caractères spécifiques du remplacement. Par exemple, ce qui suit remplacerait uniquement la partie "bar" de la chaîne :
s/(foo.*)\Kbar/new_text/
Negative Lookbehinds with \K
Des recherches négatives peuvent être obtenues en utilisant la construction ^(?:(?!STRING).)*. Cela correspond efficacement à la chaîne entière sans correspondre à aucune sous-chaîne contenant la chaîne spécifiée.
Implémentations d'expressions régulières améliorées
Certains langages ont des implémentations d'expressions régulières améliorées qui prennent en charge la longueur variable. assertions lookbehind :
Cependant , il est important de noter que toutes les implémentations d'expressions régulières modernes ne prennent pas en charge les assertions lookbehind de longueur variable. Il est toujours conseillé de consulter la documentation relative à votre langage et à votre implémentation spécifiques.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3