Feedback

C# - Website nach (regulären) Ausdruck (z.B. Emails) durchsuchen

Veröffentlicht von am 14.11.2015
(0 Bewertungen)
Die Methode dient dazu, eine Website nach einer bestimmten Zeichenkette zu durchsuchen. Als Parameter werden die URL und der Suchstring übergeben. Der Rückgabewert ist eine ArrayList mit jeglichen gefundenen Werten.


ArrayList strings = searchWebsiteForString("http://www.example.com", "example");

// Example
// Example
// example
// example
// example


Und so sieht das aus, wenn man nach Emails sucht


ArrayList results = searchWebsiteForString("http://dotnet-snippets.de/imprint", "([^@][A-Za-z0-9-_]+)@([^\\.][A-Za-z0-9-_]+).([A-Za-z]+)");

// ;info@jan-welker.de
GFU-Schulungen  [Anzeige]

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

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.

using System;
using System.Collections;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;

public static ArrayList searchWebsiteForString(string url, string regex)
{
    if (url == null | regex == null)
        throw new ArgumentNullException(url);

    ArrayList result = new ArrayList();
    var webRequest = (HttpWebRequest)WebRequest.Create(url);
    using (WebResponse webResponse = webRequest.GetResponse())
    {

        using (StreamReader sr = new StreamReader(webResponse.GetResponseStream()))
        {

            string content = sr.ReadToEnd();

            Regex r = new Regex(regex, RegexOptions.IgnoreCase);

            Match match = r.Match(content);
            while (match.Success)
            {
                result.Add(match.Value);
                match = match.NextMatch();
            }
        }

    }

    return result;
}

Abgelegt unter Web, Website, Suchen, Regex, Crawler.

2 Kommentare zum Snippet

Koopakiller schrieb am 14.11.2015:
Wir sind im Jahr 2015 und haben Generika und sogar Iteratorfunktionen.

Ein String-Array oder in deinem Fall vielleicht besser ein IEnumerable<string> zurück zu geben empfände ich als am besten, da diese Lösung bei großen Seiten auch Leistungseffizienter wäre.
Jan Welker schrieb am 16.11.2015:
Super Beispiel :)
 

Logge dich ein, um hier zu kommentieren!