2016-11-23 5 views
0

Ich habe die folgende HTML-String:Auszug Titel von HTML-Link

<a href="/tothepage" title="the page">The Link</a>. 

Wie kann ich Titel aus dem HTML-Code mit Leichtigkeit Snippet extrahieren? Entweder wird eine Regex- oder eine andere VB.NET-Lösung bevorzugt, aber C# ist in Ordnung.

Ich möchte 'die Seite' nicht den Linktext: Ich möchte den Wert des Titelattributs.

Ich habe HTMLAgilityPack installiert, wenn es so einfach ist.

+0

Versuchen Sie, den Abschnitt zwischen den Anführungszeichen 'die Seite' oder die Zeichenfolge zwischen den Tags' The Link' zu erhalten? –

+0

Ich möchte 'die Seite' nicht 'die Verbindung', ich möchte den Attributtitel. Ich habe HTMLAgilityPack installiert, wenn es leicht damit zu tun ist. – MiscellaneousUser

Antwort

1

Mit einem regulären Ausdruck wird die Gruppe es ([^"]*) enthalten:

title="([^"]*)" 

C#

using System.Text.RegularExpressions; 
static void Main(string[] args) 
    { 
     string originalString = "<a href=\"/tothepage\" title=\"the page\">The Link</a>."; 
     Regex rgx = new Regex("title=\"([^\"]*)\"", RegexOptions.IgnoreCase); 
     Match match = rgx.Matches(originalString)[0]; 
     Console.WriteLine(match.Groups[1]); 
     Console.ReadLine(); 
    } 
+0

Könnten Sie es bitte in eine .NET-Zeile setzen. – MiscellaneousUser

+0

Das '+' sollte ein '*' sein, da der Titel explizit angegeben werden kann, aber immer noch leer ist. – sapanoia

+0

@sapanoia repariert es danke! –

2

Wie Sie die HtmlAgilityPack haben bereits, können Sie den "Titel" extrahieren Attribut wie folgt aus:

Natürlich werden Sie nicht so viele Zeilen Code benötigen, da das eine Comp ist lete Arbeitsbeispiel.

Die ?. Teile verhindern, dass es zu werfen einen Fehler, wenn node Nichts ist (in diesem Fall, wenn es keine „< a>“ Element war) und verhindern, dass es einen Fehler zu werfen, wenn es kein „title“ -Attribut ist.

+0

Mir ist nie aufgefallen, dass ich die Hyperlink-Zeichenfolge als Dokument behandeln musste. Thx, ich habe bekommen, was ich brauchte. – MiscellaneousUser

+1

@MiscellaneousUser Während Sie * kleine Mengen von HTML mit Regexen analysieren können, ist das normalerweise keine gute Idee - Gründe dafür finden sich in dem ziemlich amüsanten Post [Open-Tags für die RegEx-Übereinstimmung außer XHTML-eigenen Tags] (http: //stackoverflow.com/a/1732454/1115360). –

+0

@AndrewMorton Großer Link, danke! –