regex php: hier finden Sie alles, was im div
Ich versuche zu finden eveything innerhalb eines div mit regexp. Ich bin mir bewusst, dass es wahrscheinlich ist ein intelligenter Weg, dies zu tun - aber ich habe entschieden regexp.
so derzeit meine regexp-pattern sieht wie folgt aus:
$gallery_pattern = '/<div class="gallery">([\s\S]*)<\/div>/';
Und es funktioniert der trick - etwas.
Das problem ist, wenn ich zwei divs nach jedem anderen - wie diese.
<div class="gallery">text to extract here</div>
<div class="gallery">text to extract from here as well</div>
Möchte ich für das extrahieren der Informationen aus den beiden divs, aber mein problem beim testen ist, dass ich nicht immer den text zwischen als Ergebnis sondern:
"text to extract here </div>
<div class="gallery">text to extract from here as well"
Also zu summieren. Es überspringt die ersten Ende der div. und weiter zum nächsten.
Der text innerhalb des div enthalten kann <
, /
und Zeilenumbrüche. nur damit Sie wissen!
Hat jemand eine einfache Lösung für dieses problem? Ich bin immer noch ein regexp-Neuling.
InformationsquelleAutor Fifth-Edition | 2009-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was über so etwas wie dieses :
Beachten Sie das '?' im regex, es ist also "nicht gierig".
Was Sie bekommen :
Diese sollte funktionieren... Wenn Sie nicht haben imbricated divs ; wenn Sie das tun... Naja... eigentlich : sind Sie wirklich sicher, dass Sie verwenden möchten, rationale Ausdrücke zum Parsen von HTML, die durchaus nicht die Vernunft selbst ?
+1 für die "nicht gierig" - trick und erwähnen, dass es nicht richtig funktioniert für verschachtelte <div>en. Ich würde dringend empfehlen, geht mit meder die Lösung wenn.
Ich würde empfehlen, mit DOM und loadHTML auch tatsächlich-ich habe mehrfach in anderen Antworten (siehe stackoverflow.com/questions/1274020/... zum Beispiel) : HTML ist nicht etwas, das kann richtig analysiert, mit regexes... nicht rational genug, nehme ich an ^^
Ihre große! es war das ? Ich brauchte! einfach eingefügt in meine bereits vorhandenen Ausdruck und es funktionierte wie ein Charme. Du hast wahrscheinlich Recht, ich sollte nicht verwenden, regexps, aber ich werde die Kontrolle der Eingangs-und ich brauche nur, um dies durchzuführen. so wird dies zu tun! Nochmals vielen Dank.
Du bist herzlich willkommen 🙂 Wenn man die Kontrolle über den input, und wissen, erhalten Sie immer die gleiche Art von Daten, in diesem Fall, nehme ich an regexes sind ok ^^
InformationsquelleAutor Pascal MARTIN
Sollten Sie sich nicht mit regex zu Parsen von HTML, wenn es eine günstige DOM-Bibliothek:
Ihr. Vielen Dank für das zeigen dieser Möglichkeit, obwohl ich lösen will, dies mit Hilfe von regulären Ausdrücken. Ich könnte werfen Sie einen Blick auf das ein wenig, da ich vermute, dass dies der Weg zu gehen. Aber, krank zu akzeptieren, pascal martins sollution!
InformationsquelleAutor meder omuraliev
Eine mögliche Antwort auf dieses problem gefunden werden kann, bei http://simplehtmldom.sourceforge.net/
Die Klasse helfen, mich zu lösen ähnliches problem schnell
InformationsquelleAutor