返回顶部

收藏

C#分析URL参数获取参数和值得对应列表

更多

这个C#函数用于分析url中传递的所有参数,输出一个参数名和参数值对应的NameValueCollection列表,经常能用得到

/// <summary>
/// 分析 url 字符串中的参数信息
/// </summary>
/// <param name="url">输入的 URL</param>
/// <param name="baseUrl">输出 URL 的基础部分</param>
/// <param name="nvc">输出分析后得到的 (参数名,参数值) 的集合</param>
public static void ParseUrl(string url, out string baseUrl, out NameValueCollection nvc)
{
    if (url == null)
        throw new ArgumentNullException("url");

    nvc = new NameValueCollection();
    baseUrl = "";

    if (url == "")
        return;

    int questionMarkIndex = url.IndexOf('?');

    if (questionMarkIndex == -1)
    {
        baseUrl = url;
        return;
    }
    baseUrl = url.Substring(0, questionMarkIndex);
    if (questionMarkIndex == url.Length - 1)
        return;
    string ps = url.Substring(questionMarkIndex + 1);

    // 开始分析参数对    
    Regex re = new Regex(@"(^|&)?(\\w+)=([^&]+)(&|$)?", RegexOptions.Compiled);
    MatchCollection mc = re.Matches(ps);

    foreach (Match m in mc)
    {
        nvc.Add(m.Result("$2").ToLower(), m.Result("$3"));
    }
}
//该片段来自于http://outofmemory.cn

标签:c#,.net,网络

收藏

0人收藏

支持

0

反对

0

发表评论