Sprache: C#
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.
[code]
ArrayList strings = searchWebsiteForString("http://www.example.com", "example");
// Example
// Example
// example
// example
// example
[/code]
Und so sieht das aus, wenn man nach Emails sucht
[code]
ArrayList results = searchWebsiteForString("http://dotnet-snippets.de/imprint", "([^@][A-Za-z0-9-_]+)@([^\.][A-Za-z0-9-_]+).([A-Za-z]+)");
// ;info@jan-welker.de
[/code]
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;
}
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;
}
Alte URL:
/snippet/website-nach-regulaeren-ausdruck-z-b-emails-durchsuchen/12062
Wir sind im Jahr 2015 und haben Generika und sogar Iteratorfunktionen.
Ein String-Array oder in deinem Fall vielleicht besser ein IEnumerable zurück zu geben empfände ich als am besten, da diese Lösung bei großen Seiten auch Leistungseffizienter wäre.
Super Beispiel 🙂