2013-04-05 127 views
1

我想在C#中定义一个正则表达式,当给定一个url时,将返回除协议之外的url,例如http。也就是说,我需要跳过任何协议,只返回域和路径。正则表达式跳过协议url

任何想法?

回答

1

使用这个表达式(?<=://).+

使用这个表达式://(.+)没有回顾后,值[1]

2

试着用以下的正则表达式:在regexGroup

^[a-z]+://(.*)$ 


string input = "http://www.google.com/search"; 

Match match = Regex.Match(input, @"^[a-z]+://(.*)$", RegexOptions.IgnoreCase); 

if (match.Success) 
{ 
    string url = match.Groups[1].Value; 
} 
+0

THX,该诀窍。 – fsl 2013-04-05 10:50:05

+0

net.tcp:// localhost:808 – 2013-04-05 10:51:09

+0

'^ [az。] +://(。*)$' – hsz 2013-04-05 10:51:54

0

你可以使用简单替换

string url = "http://url.com"; 
     if(url.Contains("http://")){ 
      url = url.Replace("http://",""); 
     } 
     else if(url.Contains("https://")){ 
      url = url.Replace("https://",""); 
     } 

url = Regex.Replace(url,@"[a-z]+://","");