Verwenden regulärer Ausdrücke zum Extrahieren von href-Werten aus HTML-Links
Während für robustes HTML-Parsing im Allgemeinen ein dedizierter HTML-Parser empfohlen wird, kann für einfachere Szenarien ein Ansatz mit regulären Ausdrücken verwendet werden. Diese Lösung extrahiert href
-Werte und verarbeitet sowohl einfache als auch doppelte Anführungszeichen:
<code><a\s+(?:[^>]*?\s+)?href=("|')(.+?)</code>
Erklärung:
<as
: Entspricht dem öffnenden <a>
-Tag, gefolgt von optionalem Leerzeichen.(?:[^>]*?s )?
: Entspricht optional allen anderen Attributen und Leerzeichen vor href
. Das ?:
macht dies zu einer nicht erfassenden Gruppe.href=("|')
: Entspricht dem Attribut href
, gefolgt von einem einfachen oder doppelten Anführungszeichen. Das Zitat wird in Gruppe 1 erfasst.(. ?)
: Erfasst den href
-Wert selbst (Gruppe 2).1
: Entspricht dem Schlusszitat (dasselbe wie das in Gruppe 1 erfasste Eröffnungszitat).Wichtige Überlegungen:
Dieser reguläre Ausdruck ist kein vollständiger HTML-Parser. Es schlägt bei fehlerhaftem oder komplexem HTML fehl. Es eignet sich am besten für vorverarbeitete, vereinfachte HTML-Schnipsel. Verwenden Sie es beispielsweise für eine Liste extrahierter href
-Attribute wie folgt: href="mylink.com"
Filtern nach bestimmten Linktypen:
Um Links zu filtern, die sowohl ein Fragezeichen (?
) als auch ein Gleichheitszeichen (=
) enthalten, verwenden Sie diesen verfeinerten regulären Ausdruck:
<code>href=(.*?)\?(.*?)=(.*?)</code>
Dadurch wird sichergestellt, dass nur Links mit den angegebenen Merkmalen ausgewählt werden. Denken Sie daran, dass komplexe HTML-Strukturen für zuverlässige Ergebnisse einen dedizierten HTML-Parser erfordern.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe regulärer Ausdrücke href-Werte aus HTML-Links extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!