用于URL问题的正则表达式IP

时间:2010-08-21 14:02:59

标签: regex

const string strRegex = @"^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}"
   "(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$";
Regex rgxUrl = new Regex(strRegex, RegexOptions.Compiled
   |RegexOptions.IgnoreCase);

如果我的网址为http://89.212.232.65,则此检查网址的正则表达式失败。我如何更改正则表达式,以便它也适用于IP地址?

[我使用strRegex定义编辑自由,这是一个连续的常量-msw]

3 个答案:

答案 0 :(得分:1)

.中的+.[a-zA-Z]{2,3}这个\.没有意义,你可能意味着/^(https?|ftp):\/\/([-\w.]+\.[a-zA-Z]{2,3})|((\d{1,3}\.){3}\d{1,3})/

这适用于第一部分:

{{1}}

(PCRE)

答案 1 :(得分:0)

const string strRegex = 
    @"^(http|https|ftp)\://" +
    @"(([a-zA-Z0-9-.]+\.[a-zA-Z]{2,3})|([0-2]*\d*\d\.[0-2]*\d*\d\.[0-2]*\d*\d\.[0-2]*\d*\d))" +
    @"(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9-._\?\,\'/\+&%\$#\=~])*[^.\,)(\s]$";
Regex rgxUrl = new Regex(strRegex, RegexOptions.Compiled | RegexOptions.IgnoreCase);

答案 2 :(得分:0)

据推测,您正在进行某种验证?或者试图提取主机名? 你不需要正则表达式。使用Uri或UriBuilder类