2009-08-12 2 views
5

Ho bisogno di un'espressione regolare in php per la corrispondenza di contenuti tra tag di un elemento, ad es. <body> e </body> con il perl compatibile preg_match.Regex per abbinare il contenuto del corpo HTML in PHP

Finora ho provato con:

// $content is a string with html content 

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

print_r($matches); 

... ma la stampa è un array vuoto.

risposta

0

partita Perl regexp per default una linea

devi specificare che vuoi effettuare una ricerca su più righe aggiungendo come o sono dopo l'ultima/

ex:

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

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

+0

L'impostazione del flag -m non è sufficiente, in quanto modifica solo il comportamento degli operatori^e $. – Wookai