3 Stimmen

Noch eine weitere Frage zum URL-Präfix-Regex (zur Verwendung in C#)

Ich habe viele reguläre Ausdrücke für die Url-Validierung gesehen. In meinem Fall möchte ich die Url einfacher sein, so dass die Regex sollte enger sein:

Gültige Url Vorwahlen aussehen:

  • http[s]://[www.]addressOrIp[.etwas]/PageName.aspx[?]

Dies beschreibt ein Präfix. Ich werde anhängen ?x=a&y=b&z=c später. Ich möchte nur überprüfen, ob die Webseite live ist, bevor ich sie aufrufe, aber auch vorher möchte ich sicherstellen, dass sie richtig konfiguriert ist. Ich möchte behandeln bad url y host is down Bedingungen anders, aber im Zweifelsfall gebe ich lieber eine host is down Botschaft, denn das ist ohnehin ein ultimativer Test. Ich hoffe, das macht Sinn. Ich schätze, was ich versuche zu sagen - die Regex muss nicht zu aggressiv sein, ich will nur, dass sie etwa 95% der Fälle abdeckt.

Dies ist C# - zentriert, so Perl Regex-Erweiterungen sind nicht hilfreich für mich, lassen Sie uns auf den kleinsten gemeinsamen Nenner bleiben.

Gracias.

4voto

SLaks Punkte 832502

Sie sollten die Uri Klasse:

Uri uri;

if (!Uri.TryCreate(str, UriKind.Absolute, out uri))
    //Bad bad bad!!!
if (uri.Scheme != "http" && uri.Scheme != "https")
    //Bad bad bad!!!
if (uri.Host.IndexOf('.') <0)
    //Bad bad bad!!!

1voto

Oleks Punkte 31284

使用方法 System.Uri stattdessen.

Dann können Sie mit Ihren URL-Teilen arbeiten, z. B. Gastgeber , Schema , PathAndQuery usw. und prüfen Sie die erforderlichen Bedingungen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X