Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Regular Expression - Inhalt zwischen Kommentaren (https://www.delphipraxis.net/127491-%5Bphp%5D-regular-expression-inhalt-zwischen-kommentaren.html)

Delphi-Coder 14. Jan 2009 12:56


[PHP] Regular Expression - Inhalt zwischen Kommentaren
 
Hallo,

ich habe folgenden HTML-Quelltext:
Code:
mehrzeiliger
HTML-Inhalt
mit div-Layern
und weiteren Kommentaren
Teil 1



mehrzeiliger
HTML-Inhalt
mit div-Layern
und weiteren Kommentaren
Teil 1
Nun möchte ich mit PHP über Regular Expressions alle (mehrzeiligen) Inhalte zwischen den Kommentaren bekommen. Dabei kann der Anfangskommentar immer variieren (im Attribut "name"), während der Endkommentar immer gleich bleibt.

Ich habe schon mehrere Möglichkeiten ausprobiert. Alles leider ohne Erfolg. Mein bisher bester Ansatz war
Code:
(.*?)
Aber der funktioniert nur, wenn Anfangs- und Endkommentar in einer Zeile stehen.

Ich hoffe, ihr könnt mir helfen!

Viele Grüße,
Delphi-Coder

SubData 14. Jan 2009 13:05

Re: [PHP] Regular Expression - Inhalt zwischen Kommentaren
 
Mit dem Modifier "m" kannst du auf Multiline schalten.

Edit: http://de2.php.net/manual/en/referen....modifiers.php

Delphi-Coder 14. Jan 2009 13:13

Re: [PHP] Regular Expression - Inhalt zwischen Kommentaren
 
Danke, das bringt mich der Sache schonmal ein Stück näher. Der Modifier "m" funktioniert ja nur, wenn im Pattern ^ oder $ vorkommen. Also habe ich jetzt das Pattern
Code:
/([^>]*)/im
Leider funktioniert der auch noch nicht. Mit diesem Pattern erhalte ich gar keine Ergebnisse. Woran kann es noch liegen?

omata 14. Jan 2009 17:42

Re: [PHP] Regular Expression - Inhalt zwischen Kommentaren
 
Code:
$text = '
  Text davor
 
  mehrzeiliger
  HTML-Inhalt
  mit div-Layern
  und weiteren Kommentaren
  Teil 1
 

 
  mehrzeiliger
  HTML-Inhalt
  mit div-Layern
  und weiteren Kommentaren
  Teil 1
 
  Text danach';

$expr = '/<.*web:item:start.*>(.*)<.*web:item:stop.*>/sU';
if (preg_match_all($expr, $text, $match) > 0) {
  foreach($match[1] as $value) {
    echo $value;
  }
}
Ergebnis:
Code:
mehrzeiliger
HTML-Inhalt
mit div-Layern
und weiteren Kommentaren
Teil 1

mehrzeiliger
HTML-Inhalt
mit div-Layern
und weiteren Kommentaren
Teil 1

Delphi-Coder 14. Jan 2009 18:24

Re: [PHP] Regular Expression - Inhalt zwischen Kommentaren
 
Vielen Dank!
Das hat mir sehr geholfen. Regular Expressions sind für mich jedesmal ein Graus! ;)

Schönen Abend noch!
Delphi-Coder


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz