Die Verwendung einer C# regex zu Parsen einen domain-Namen?
Brauche ich, um eine Analyse der domain-Namen aus einem string. Die Zeichenfolge kann variieren, und ich brauche die exakte Domäne.
Beispiele für Strings:
http://somename.de/
www.somename.de/
somename.de/
somename.de/somesubdirectory
www.somename.de/?pe=12
Muss ich es im folgenden format mit nur den domain-Namen, die tld
, und die www
falls zutreffend):
www.somename.de
Wie mache ich das mit C#?
- hey danke dafür, dass es klarer
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich einfach verwendet
weil durch die Nutzung dieser können Sie sicher.
Als alternative zu einer regex-Lösung, lassen Sie die
System.Uri
Klasse parse den string für Sie. Sie müssen nur sicherstellen, dass die Zeichenfolge enthält eine Regelung.Diese Lösung filtert auch alle port-Nummern und wandelt die IPv6-Adressen auf Ihre kanonische form.
Uri
Konstruktor erwartet eine gültige URL.Ich habe Regular Expression Library, und es sieht aus wie etwas wie das könnte für Sie arbeiten:
http://
).Versuchen Sie dies:
dies ist ein schwaches regex - es funktioniert nicht überprüfen Sie die Zeichenfolge, sondern nimmt an, dass es bereits eine url und bekommt das erste Wort, bis die ersten Schrägstrich, unter Missachtung des Protokolls. Um die Domäne Blick auf die erste Gruppe erfasst, zum Beispiel:
Als bonus wird auch erfasst, bis die ersten
?
, also die urlgoogle.com?hello=world
wie erwartet funktionieren wird.