Ich muss eine Url wie die von Webservern validieren. Etwas wie http://localhost:8080/xyz
Wie machen wir das mit regex. Entschuldigung, neu bei regex.
Ich muss eine Url wie die von Webservern validieren. Etwas wie http://localhost:8080/xyz
Wie machen wir das mit regex. Entschuldigung, neu bei regex.
Die entsprechenden Spezifikationen finden Sie unter rfc 3986 und enthalten reguläre syntaxdefinitionen für alle möglichen url-komponenten. für ihre zwecke sind diese jedoch wahrscheinlich zu allgemein. ein etwas verkürzter ausdruck, der nur urls unter dem http(s)-Protokoll abdeckt, wäre
http[s]?://(([[:alpha:][:digit:]-._~!$&'\(\)*+,;=]|%([0-9A-F]{2}))+|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))(:[0-9]+)?(/([[:alpha:][:digit:]-._~!$&'\(\)*+,;=]|%([0-9A-F]{2}))*)+(\?([[:alpha:][:digit:]-._~!$&'\(\)*+,;=/?]|%([0-9A-F]{2}))+)?(#([[:alpha:][:digit:]-._~!$&'\(\)*+,;=/?]|%([0-9A-F]{2}))+)?
die vereinfacht werden kann zu
http[s]?://(([^/:\.[:space:]]+(\.[^/:\.[:space:]]+)*)|([0-9](\.[0-9]{3})))(:[0-9]+)?((/[^?#[:space:]]+)(\?[^#[:space:]]+)?(\#.+)?)?
wenn Sie sich über die korrekte Syntax der URL-Komponenten sicher sein können.
Beachten Sie, dass Sie vielleicht restriktivere Muster wünschen, z. B. für die Volltextsuche und um nur iana-registrierte Top-Level-Domains zuzulassen.
Ich hoffe, es hilft,
mit freundlichen Grüßen, carsten
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.