Maison  >  Article  >  développement back-end  >  Pouvons-nous obtenir un véritable lookbehind de longueur variable dans les expressions régulières ?

Pouvons-nous obtenir un véritable lookbehind de longueur variable dans les expressions régulières ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 10:05:02872parcourir

 Can We Achieve True Variable-Length Lookbehind in Regular Expressions?

Alternatives aux assertions Lookbehind de longueur variable pour les expressions régulières

Les assertions Lookbehind de longueur variable dans les expressions régulières, désignées par (?

Python avec module regex

Le module regex de Python offre la prise en charge des assertions lookbehind de longueur variable.

<code class="python">import regex

m = regex.search('(?<!foo.*)bar', 'f00bar')
print(m.group())  # Output: bar</code>

Jeton K

Les expressions régulières modernes introduisent le jeton K, qui garantit que les caractères correspondants qui le précèdent ne sont pas inclus dans la correspondance.

s/unchanged-part\Kchanged-part/new-part/x

Limitations

Bien que K fournisse certaines fonctionnalités de recherche, il ne peut pas supprimer de caractères jusqu'à un point spécifique ni être utilisé plusieurs fois dans une expression.

Implémentations d'expressions régulières améliorées

Outre les expressions régulières pour Python, d'autres améliorations des implémentations d'expressions régulières peuvent exister pour Perl, Ruby, JavaScript et PHP. L'étude de ces alternatives peut fournir des options supplémentaires pour gérer les assertions lookbehind de longueur variable.

Questions

  • L'effet de K peut-il être étendu à un point spécifique de la correspondance ?
  • Existe-t-il des implémentations améliorées d'expressions régulières pour Perl, Ruby, JavaScript ou PHP qui prennent en charge les assertions lookbehind de longueur variable ?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn