2009-08-12 6 views
5

J'ai besoin d'une regex en php pour faire correspondre les contenus entre les balises d'un élément, par ex. <body> et </body> avec le perl compatible preg_match.Regex pour faire correspondre le contenu du corps HTML en PHP

Jusqu'à présent, j'essayé avec:

// $content is a string with html content 

preg_match("/<body(.|\r\n)*\/body>/", $content, $matches); 

print_r($matches); 

... mais l'impression est un tableau vide.

Répondre

0

perl regexp correspondance par défaut une ligne

vous devez spécifier que vous voulez faire une recherche de plusieurs lignes en ajoutant que ou aM après le dernier/

ex:

$> perl -e 'print $1 if "bla\nbla\n<body>\nfirst line\n second line\n</body>\nbla" =~ /^.*<body>(.*)<\/body>.*$/s' 

voir: http://www.perl.com/pub/a/2003/06/06/regexps.html

+0

La définition de l'indicateur -m n'est pas suffisante, car elle ne modifie que le comportement des opérateurs^et $. – Wookai

Questions connexes