Verwenden eines C # regex zum Analysieren eines Domänennamens?

7

Ich muss den Domain-Namen von einer Zeichenfolge analysieren. Die Zeichenfolge kann variieren und ich brauche die genaue Domäne.

Beispiele für Strings:

%Vor%

Ich brauche es im folgenden Format nur mit dem Domain-Namen, dem tld und dem www , falls zutreffend:

%Vor%

Wie mache ich das mit C #?

    
Neutralizer 24.07.2010, 13:44
quelle

4 Antworten

10

ich benutze einfach

%Vor%

weil Sie damit sicher umgehen können.

    
Steven Spielberg 24.07.2010, 16:10
quelle
13

Als Alternative zu einer Regex-Lösung können Sie die System.Uri -Klasse die Zeichenfolge für Sie parsen lassen. Sie müssen nur sicherstellen, dass die Zeichenfolge ein Schema enthält.

%Vor%

Diese Lösung filtert auch alle Portnummern heraus und konvertiert IPv6-Adressen in ihre kanonische Form.

    
Niels van der Rest 24.07.2010 14:52
quelle
2

Ich habe die Bibliothek für reguläre Ausdrücke ausgecheckt, und es sieht so aus, als ob so etwas für Sie funktionieren könnte:

%Vor%     
Brandon Satrom 24.07.2010 13:53
quelle
1

Versuchen Sie Folgendes:

%Vor%

Dies ist ein schwacher Regex - es validiert die Zeichenfolge nicht, sondern nimmt an, dass es bereits eine URL ist, und erhält das erste Wort bis zum ersten Schrägstrich, während das Protokoll ignoriert wird. Um die Domain auf die erste erfasste Gruppe zu überprüfen, zum Beispiel:

%Vor%

Als Bonus gibt es auch bis zum ersten ? , also funktioniert die URL google.com?hello=world wie erwartet.

    
Kobi 24.07.2010 14:36
quelle

Tags und Links