4 Stimmen

Erstellung eines regulären Ausdrucks (RegEx), um den Text eines HTML-Tags zu extrahieren

Ich versuche, einen regulären Ausdruck zu erstellen, um den Text innerhalb des HTML-Tags wie unten gezeigt zu extrahieren. Ich habe jedoch nur begrenzte Kenntnisse über reguläre Ausdrücke, und ich habe Probleme beim Erstellen der Zeichenfolge.

Wie kann ich den Text aus diesem Tag extrahieren?

<a href="javascript:ProcessQuery('report_drilldown',145817)">text</a>

Dies ist nur ein Beispiel für den HTML-Quelltext der Seite. Im Grunde brauche ich eine regex Zeichenfolge mit dem "Text" in der Datei <a> Tag. Kann mir jemand dabei helfen? Ich danke Ihnen. Ich hoffe, meine Frage war nicht zu furchtbar formuliert.

UPDATE : Nur zur Klarstellung, report_drilldown ist absolut, aber es ist mir eigentlich egal, ob es in der regex als absolut oder nicht.

145817 ist eine zufällige 6-stellige Zahl, die eigentlich eine Datenbank-ID ist. "text" ist ein einfacher Text, also kein ungültiges HTML. Außerdem sagen die meisten Leute, dass es am besten ist, in dieser Situation keine Regex zu verwenden, also was wäre am besten zu verwenden? Herzlichen Dank!

4voto

the.jxc Punkte 3237

Die Antwort lautet ... TUN SIE ES NICHT!

Verwenden Sie eine Bibliothek, wie z. B. diese

2voto

<a href="javascript:ProcessQuery\('report_drilldown',[0-9]+\)">([^<]*)</a>

Dies wird das Problem nicht wirklich lösen, aber es könnte gerade noch so reichen. Vor allem ist es sehr spröde, die kleinste Änderung an der Aufschrift und sie passt nicht mehr. Wenn report_drilldown nicht absolut sein soll, ersetzen Sie es durch [^']* und/oder erfassen Sie bei Bedarf sowohl diese als auch die Nummer.

Wenn Sie etwas brauchen, das HTML analysiert, dann ist es ein kleiner Alptraum, wenn Sie mit Tag-Suppe umgehen müssen. Wenn Sie Python verwenden würden, würde ich vorschlagen BeautifulSoup , aber ich kenne nichts Ähnliches für C#. (Kennt jemand eine ähnliche Tag-Soup-Parsing-Bibliothek für C#?)

-1voto

Fung Punkte 7288
<a href\=\"[^\x00]*?\">

sollten Sie das Eröffnungs-Tag erhalten.

<\/a>

erhalten Sie den abschließenden Tag. Extrahieren Sie einfach das, was dazwischen liegt. Allerdings ungetestet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X