2016-12-08 9 views
0

Ich verwende eine Regex, um eine URL in C# zu validieren. Regex ist:Regex: URL mit Portnummer validieren

^((((http(s)?|ftp(s)?):(?:\/\/)?)(?:[-;:&=\+\$,\w][email protected])?[A-Za-z0-9.-]+|(?:([a-zA-Z]{1,}\.)|[-;:&=\+\$,\w][email protected])[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$

Es funktioniert gut für die URL wie: http://stackoverflow.com, stackoverflow.com aber ich möchte auch http://localhost:1234 und localhost validieren: 1234.

+1

See [? Was ist der beste reguläre Ausdruck ist zu prüfen, ob ein String eine gültige URL ist] (http://stackoverflow.com/questions/161738/what- is-the-best-regular-expression-to-check-wenn-eine-string-is-a-valid-url) –

+1

Es muss möglich sein. Mit Regex ist alles möglich. Sogar das Analysieren von HTML ist [fast möglich] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454). Wenn Sie Ihren eigenen Code im Februar 2017 verstehen möchten, verwenden Sie etwas anderes. –

Antwort

0

Versuchen Sie, diese Regex statt aus:

^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$ 
+0

validiert es auch "http: // localhost". –