Feedback

C# - alle Links aus HTML Quelltext filtern

Veröffentlicht von am 18.03.2008
(1 Bewertungen)
Diese Methode gibt eine List<string> aller Links aus dem übergebenen HTML Quelltext zurück.

benötigte Usings:

using System.Collections.Generic;
using System.Text.RegularExpressions;
GFU-Schulungen  [Anzeige]

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

/// <summary> 
/// Gets the HTML links. 
/// </summary> 
/// <param name="html">The HTML.</param> 
/// <returns></returns> 
private List<string> GetHtmlLinks(string html)
{
    string linkPattern = "<a href=\"(.*?)\">(.*?)</a>";
    MatchCollection linkMatches = Regex.Matches(html, linkPattern, RegexOptions.Singleline);
    List<string> linkContents = new List<string>();
    foreach (Match match in linkMatches)
        linkContents.Add(match.Value);
    return linkContents;
} 
Abgelegt unter HTML, link, Regex.

6 Kommentare zum Snippet

dariusarnold schrieb am 20.03.2013:
Wie schreibt man einen Punkt in den Pattern? Einfach . Steht ja für Alles außer \n. Ich will aber, dass nur ein normaler Wald und Wiesen-Punkt akzeptiert wird.
Koopakiller schrieb am 21.03.2013:
Hallo, wie so oft, ein Backslash davor: \.
So gehts auch bei + * ( ) { } [ ] ...
dariusarnold schrieb am 21.03.2013:
Hatte ich probiert, aber er compiliert nicht: Nicht erkannte Escapesequenz. :(
Aber Danke :D
klaus_b schrieb am 22.03.2013:
Wenn du einen String mit Escapesequenzen an einen regulären Ausdruck übergibst, kannst du entweder einen doppelten Backslash vor Sonderzeichen setzen setzen oder ein at-Zeichen vor den gesamten string:
var linkPattern = @" \\hier dein Pattern ";
dariusarnold schrieb am 22.03.2013:
Man muss also die Backslashes 'escapen', die eine andere Sache 'escapen', da Regex Escapesequenzen vorsieht, die standardmäßig nicht unterstützt werden.. Richtig??

Vielen Dank..
klaus_b schrieb am 22.03.2013:
In etwa, ja.
Die String-Klasse kennt andere Escapesequenzen als die Regex-Klasse.
Eine Tabulatorzeichen musst du in einer String-Instanz escapen. In Regex fällt es mit unter die Whitespaces, für die du den Typ \s hast. Auch mit Umbrüchen verhält es sich so.
Die Escapesequenzen einer String-Instanz sehen immer "komisch" aus, wenn dieser String als Muster für einen regulären Ausdruck verwendet wird.
 

Logge dich ein, um hier zu kommentieren!