URL: https://linuxfr.org/forums/programmation-php/posts/expression-r%C3%A9guli%C3%A8re-avec-solutions-imbriqu%C3%A9es Title: Expression régulière avec "solutions imbriquées" Authors: anw Date: 2006年08月20日T17:37:28+02:00 Tags: Score: 0 Je cherche à extraire d'un code HTML toutes les chaînes de caractères se trouvant entre deux tags. Je dois aussi pouvoir connaître le nom de ces deux tags. Par exemple, j'aimerais extraire du source suivant (les signes inférieur/supérieur des balises html ont été remplacés par { et } pour l'affichage)... {p}un exemple avec {i}de l'italique{/i} et des sauts de lignes{br/}...{/p} ...Les éléments suivants : - {p}un exemple avec {i} - {i}de l'italique{/i} - {/i} et des sauts de lignes{br/} - {br/}...{/p} Pour cela, j'utilise cette expression régulière : /\{([^}]+)\}([^}]+)\{([^}]+)\}/s Le problème, c'est qu'elle me "zappe" un élément sur deux et ne me retourne que : - {p}un exemple avec {i} - {/i} et des sauts de lignes{br/} Ca doit être dû au fait que les éléments que je souhaite obtenir "partagent" un tag en commun, et que la recherche se poursuit à partir de la fin de la dernière solution trouvée et non à partir de la position de début de solution + 1... Une solution aurait pu être d'utiliser l'expression régulière suivante : /\}([^}]+)\{/s Elle trouve bien tous les éléments, mais elle ne me permet pas d'obtenir le nom des deux tags qui encadrent chaque élément. Or, il me les faut absolument car j'ai un traitement à faire en fonction de ces tags... Vos solutions sont les bienvenues !

AltStyle によって変換されたページ (->オリジナル) /