正则表达式获取基本URL

时间:2012-04-10 09:45:35

标签: c# regex asp.net-mvc-2

我有一个非常长的字符串,其中包含查询字符串和一些常规网站网址。它看起来像

http://www.mysite.com/site/site?pageId=1234&otherId=4321

我想从这个字符串中得到http://www.mysite.com。我想也许一个正则表达式可以做到这一点,但是我并没有因为写任何一个而狡猾:)所以我可以得到一些帮助吗?

修改
我需要一个解决方案,所以我可以传递url字符串并从中获取基本URL。不是我现在的Url

谢谢你们,一如既往地欣赏它。

3 个答案:

答案 0 :(得分:2)

请试试这个:

string uri = Request.Url.GetLeftPart(UriPartial.Authority);

您也可以查看:

var url = new Uri("http://www.mysite.com/site/site?pageId=1234&otherId=4321");
string uri = url.GetLeftPart(UriPartial.Authority);

答案 1 :(得分:0)

解决方案

var url = new Uri("http://www.mydomain.com/Site/Subsite?page=site");
var baseUrl = url.Host;

答案 2 :(得分:0)

正如作者要求使用正则表达式一样,就是这样:

 static string ExtractBaseUrl(string url)
        {
            Regex regex = new Regex(@"^https?:\/\/[^\/]+");
            Match resultm = regex.Match(url);
            if (resultm.Success)
            return resultm.Groups[0].Value;
            else return null;
        }