Expressions régulières pour une correspondance précise des parenthèses équilibrées
Cet article aborde le défi de faire correspondre avec précision des parenthèses équilibrées à l'aide d'expressions régulières, en particulier dans le contexte d'un appel de fonction (par exemple, funcPow
). Les approches regex standard ne parviennent souvent pas à limiter la correspondance à la portée de l'appel de fonction souhaité.
La solution réside dans une technique de regex plus avancée. L'expression suivante utilise des groupes de capture nommés et des constructions de groupes d'équilibrage pour obtenir une correspondance précise :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Cette expression régulière utilise un mécanisme de groupe d'équilibrage. (?<open> ( )
ajoute une parenthèse ouvrante à un groupe de capture nommé « open », agissant comme une pile. (?<-open> ) )
supprime une parenthèse de la pile "ouverte" pour chaque parenthèse fermante rencontrée. Le conditionnel (?(open)(?!))
garantit que la correspondance échoue si la pile ("open") n'est pas vide à la fin, garantissant des parenthèses équilibrées dans l'appel de fonction. Cette approche restreint effectivement la correspondance à l'appel de fonction prévu.
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!