2009-08-12 8 views
5

Potrzebuję wyrażeń regularnych w php do dopasowywania zawartości między znacznikami elementu, np. <body> i </body> z perla zgodnym preg_match.Regex, aby dopasować treść treści HTML w PHP

Do tej pory starałem się:

// $content is a string with html content 

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

print_r($matches); 

... ale wydruk jest pusta tablica.

Odpowiedz

0

Perl regexp mecz domyślnie jedna linia

musisz określić, że chcesz wykonać wyszukiwanie wielowierszowe, dodając lub po ostatniej/ ex:

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

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

+0

Ustawienie opcji -m nie jest wystarczające, ponieważ zmienia tylko zachowanie operatorów^i $. – Wookai