要求:当点击确定按钮后,根据第二个文本框输入的节点,截取url地址,并将新的url地址显示到第三个文本框中。(注:url地址可以是任意的,节点也是任意的)
假如我的url为 http://www.sina.com/index.asp?id=1&name=wq&address=cd
要删除的节点为id,那么删除之后的新url为http://www.sina.com/index.asp?name=wq&address=cd
主要代码实现如下:
/// <summary>
/// 自定义删除节点的方法
/// </summary>
/// <param name="url">第一个文本框的text</param>
/// <param name="node">第二个文本框的text</param>
/// <returns>返回截取后新的url地址,赋值给第三个文本框</returns>
public string DeleteNode(string url, string node)
{
//写出匹配的正则表达式
string pattern = @"[/?&]" + node + @"=/w*[&]*";
Regex regex = new Regex(pattern);
if (regex.Match(url).Success)
{
string urlNode = regex.Match(url).Value;
if (urlNode.StartsWith("?"))//代表它是第一个节点
{
//urlNode = urlNode.Substring(1, urlNode.Length-1);
//url = url.Replace(urlNode, "");
url = url.Replace(urlNode,"?");
}
else
{
if (urlNode.EndsWith("&"))//代表它是中间的节点
{
url = url.Replace(urlNode, "&");
}
else
{
url = url.Replace(urlNode, "");
}
}
}
else
{
return "没有找到匹配项";
}
return url;
}