Heim >Backend-Entwicklung >C++ >Wie extrahiere ich href-Attributwerte aus Ankerlinks mithilfe regulärer Ausdrücke?

Wie extrahiere ich href-Attributwerte aus Ankerlinks mithilfe regulärer Ausdrücke?

Barbara Streisand
Barbara StreisandOriginal
2025-01-10 10:39:41500Durchsuche

How to Extract href Attribute Values from Anchor Links Using Regular Expressions?

Verwenden Sie reguläre Ausdrücke, um den href-Attributwert des Ankerlinks zu extrahieren

Um den href-Attributwert aus einem HTML-Ankerlink zu extrahieren, können Sie einen benutzerdefinierten regulären Ausdruck verwenden. Hier finden Sie eine umfassende Antwort für Ihre spezifischen Anforderungen:

Das von Ihnen bereitgestellte Regex-Muster „@(<a.>?>.?)“ identifiziert Ankerlinks, erfasst jedoch nicht den href-Wert. Um dies zu erreichen, benötigen Sie ein spezifischeres Muster:

<code><a\s+(?:[^>]*?\s+)?href=(["'])(.*?)</code>

Dieser Modus ist wie folgt unterteilt:

  • <a entspricht dem Startankertag.
  • s (?:[^>]*?s )? entspricht allen Leerzeichen und optionalen Attributen (nicht erfassenden Gruppen) innerhalb von Anker-Tags.
  • href= entspricht dem href-Attribut.
  • (["'])(.*?)1 erfasst den href-Wert, der zwischen doppelten oder einfachen Anführungszeichen steht (Erfassungsgruppe).

Gültige URLs filtern

Um ungültige URLs (URLs, die weder „?“ noch „=" Zeichen enthalten) herauszufiltern, können Sie den folgenden regulären Ausdruck verwenden:

<code>page\.php\?id\=.*</code>

Dieses Muster sucht nach Zeichenfolgen, die den von Ihnen angegebenen Kriterien entsprechen.

Href-Wert aus verknüpfter Liste extrahieren

Sie haben angegeben, dass Sie keine Ankertags mehr analysieren müssen, und Sie verfügen jetzt über eine Liste von Links im Format „href="abcdef"". Um den href-Wert aus dieser Liste zu extrahieren, können Sie Folgendes verwenden:

<code>"href=(['"])(.*?)</code>

Dieser Modus erfasst href-Werte, auch wenn sie in doppelte oder einfache Anführungszeichen gesetzt sind.

JavaScript-Code-Snippet

Um zu demonstrieren, wie diese regulären Ausdrucksmuster in JavaScript verwendet werden, finden Sie hier einen Codeausschnitt:

<code class="language-javascript">const pattern = /<a\s+(?:[^>]*?\s+)?href=(["'])(.*?)/;
const linkText = '<a href="www.example.com/page.php?id=xxxx&name=yyyy"></a>';
const match = pattern.exec(linkText);
if (match) {
  console.log(match[2]); // 输出:www.example.com/page.php?id=xxxx&name=yyyy
}</code>

Das obige ist der detaillierte Inhalt vonWie extrahiere ich href-Attributwerte aus Ankerlinks mithilfe regulärer Ausdrücke?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn