Topper Posté(e) le 4 septembre 2006 Partager Posté(e) le 4 septembre 2006 Bonjour à tous, Je suis loin d'être un champion en expressions rationnelles, et là je sèche un peu. J'ai une chaine multilignes (avec des \n quoi) qui représente un fragment de code XHTML. Je cherche à trouver un type de balise à l'intérieur de cette chaine (mettons <p>) et à indenter de 2 espaces chaque ligne à l'interieur de cette balise. Je code ça en PHP et le type de regexp est PERL je crois (preg_replace). Merci pour l'aide ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 4 septembre 2006 Partager Posté(e) le 4 septembre 2006 Pourquoi ne pas y aller directement à la tronçonneuse? Tu prends les routines XML de php, tu lis correctement ton document, et tu réindentes :) Je crois même que DOM le fait tout seul. [edit] sinon pour ton basar, tu as preg_replace_callback. Je te laisse à peine imaginer ce que tu peux faire avec pour la regexp: @<p>(.+)</p>@Usi Puis : function cb($m) { return str_replace("\n", "\n ", $m[0]); } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Topper Posté(e) le 4 septembre 2006 Auteur Partager Posté(e) le 4 septembre 2006 Merci pour m'avoir fait découvrir preg_replace_callback qui me sera sans doute fort utile pour la suite de mon projet Mais dans le cas qui m'interesse, je dois me limiter à preg_replace car je boucle sur un tableau de regexp qui balance vers preg_replace (les autres regexp n'ont pas besoin de callback). Traiter cette regexp avec preg_replace_callback ou même avec le DOM parser m'obligerait a faire un test conditionnel supplémentaire et à rendre mon code un poil plus crade. Donc si y'avait moyen de choper une regexp classique ça m'arrangerait, elle doit bien exister Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 4 septembre 2006 Partager Posté(e) le 4 septembre 2006 Ben j'aurais tendance à dire que tout ne se fait pas en regexp... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Topper Posté(e) le 4 septembre 2006 Auteur Partager Posté(e) le 4 septembre 2006 Tu as peut être raison, m'enfin je tente ma chance quand même Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.