Aller au contenu

[regexp] Avis aux amateurs


Topper

Messages recommandés

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

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 :chinois:

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

Merci pour m'avoir fait découvrir preg_replace_callback qui me sera sans doute fort utile pour la suite de mon projet :chinois:

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 :pleure:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...