de.comp.lang.php.* FAQ

8.7. Wie isoliere ich Suchstrings aus einem größeren Text?

Keywords: Tag | Grabbing | mehrzeilig | Modifier

Antwort von Kristian Köhntopp

Das folgende vollständige Beispiel zeigt, wie man den Inhalt des Body-Tags aus einer HTML-Datei isolieren kann.

  $str = "lalalala
<body bgcolor=#cccccc>lang und weilig
noch eine zeile
<h1>Bla</h1>
</body>
tralalal";
  preg_match_all("=<body[^>]*>(.*)</body>=siU", $str, $a);
  print $a[1][0];

Das Beispiel macht von den Optionen i, s und U der Perl Regular Expressions Gebrauch: Die Option i sorgt dafür, dass Groß- und Kleinschreibung keine Rolle spielen, die Option U sorgt dafür, dass Ungreedy gematched wird, d.h. der kürzest mögliche Match verwendet wird. Die Option s bewirkt, dass der Punktoperator auch Newlines mit matched. Dadurch ist es möglich, den regulären Ausdruck auf auf einen mehrzeiligen String anzuwenden.

Valid HTML 4.01! Valid CSS!

8.7. Wie isoliere ich Suchstrings aus einem größeren Text?
http://www.php-faq.de/q/q-regexp-grosser-text.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team