Frage

Ich versuche, einen regulären Ausdruck für meinen HTML-Parser zu schreiben.

Ich möchte mit bestimmten Attribut einen HTML-Tag übereinstimmen (zB. <div> mit class="tab news selected"), die eine oder mehrere <a href>-Tags enthält. Die regexp sollte den gesamten Tag (von <div> zu </div>) entspricht. Ich scheine immer „Speicher erschöpft“ Fehler zu bekommen -. Mein Programm wahrscheinlich jeden Tag nimmt es als passendes finden kann

I boost regex Bibliotheken bin mit.

Andere Tipps

Sie sollten wahrscheinlich sehen diese Frage erneut. regexps und HTML. Der Kern ist, dass reguläre Ausdrücke mit HTML zu analysieren ist keineswegs eine ideale Lösung.

Wie andere gesagt haben, verwenden Sie nicht reguläre Ausdrücke, wenn überhaupt möglich. Wenn Ihr Code XHTML ist eigentlich (dh ist es auch wohlgeformte XML) aI empfehlen können sowohl die Xerces und Expat XML-Parser, die für Sie als reguläre Ausdrücke eine viel betterv Job machen wird.

Vielleicht regexps ist nicht die beste Lösung, aber ich bin schon mit wie fünf verschiedene Bibliotheken und boost tut gut, wenn es <a href> Tags und Keywords zu lokalisieren kommt.

Ich verwende diese regexps:

/<a[^\n]*/searched attribute/[^\n]*>[^\n]*</a>/ zum Lokalisieren <a href> Tags und:

/<a[^\n]*href[[^\n]*>/searched keyword/</a>/ zum Lokalisieren Links

(BTW kann es besser machen - ich regex saugen;))

Was ich brauche jetzt ist die Lokalisierung Tags <a href> des enthält, und ich denke, regexps wird alles gut tun - vielleicht werde ich brauche, um meine eigene Parsing-Funktion zu schreiben, wie piotr sagte.

Sie als flex tut. Spiel

mit Groß- und Kleinschreibung Spiel, und setzen Sie Ihren Parser in einem "-div matched" Zustand halten Eingangsverarbeitungs bis
und Reset-Zustand

Das dauert zwei regexps und eine Zustandsgröße.

SGML gültige Zeichen sind [A-Za-z _:]

So: / <[A-Za-z _:] +>. / Stimmt mit einem Tag

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top