Aller au contenu

[regexp] Avis aux amateurs


Topper

Messages recommandés

Posté(e)

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 !

Posté(e)

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]);

}

Posté(e)

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:

Archivé

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

×
×
  • Créer...