C#操作Url参数
/*----------------------------------------
* Function:C#操作Url参数
* Author:Robot.H
* Created:20081117
---------------------------------------*/
using System;
using System.Text.RegularExpressions;
using System.Runtime.Remoting.Contexts;
class app
{
static void Main()
{
//生成random
Random rand = new Random(Environment.TickCount);
int num = rand.Next(1, 10000);
/*
* http://news.sina.com.cn
* http://news.sina.com.cn?page=1
* http://news.sina.com.cn?page=1&ts=1341 &&
* http://news.sina.com.cn?ts=14321&page=1 ?&
* http://news.sina.com.cn?u=2&ts=14321&page=1 &&
*/
string url = "http://news.sina.com.cn?u=2&ts=14321&page=1";
string ParamText = "ts";
string ParamValue = num.ToString();
Console.WriteLine(BuildUrl( url, ParamText, ParamValue));
Console.Read();
}
//url里有key的值,就替换为value,没有的话就追加.
public static string BuildUrl(string url, string ParamText, string ParamValue)
{
Regex reg = new Regex(string.Format("{0}=[^&]*",ParamText),RegexOptions.IgnoreCase);
Regex reg1 = new Regex("[&]{2,}", RegexOptions.IgnoreCase);
string _url = reg.Replace(url, "");
//_url = reg1.Replace(_url, "");
if (_url.IndexOf("?") == -1)
_url += string.Format("?{0}={1}",ParamText,ParamValue);//?
else
_url += string.Format("&{0}={1}", ParamText, ParamValue);//&
_url = reg1.Replace(_url, "&");
_url = _url.Replace("?&", "?");
return _url;
}