如有一个URL
string url=" http://www.znpx.net/Default.aspx?ID=1&year=2000&type=3";
或者
string url ="http://www.znpx.net/Default.aspx?ID=1&year=2000";想把上面的字符串中的&year=2000替换为&year=2001
意思是要替换掉2000,
不能写成url.Replace("2000","2001");
这样没意思有没有什么正则能替换"&year="之后"&"之前的字符?或者是"&year="之后"&"的?

解决方案 »

  1.   

    没意思是什么意思?
     如果你的参数值是加密的,你可以找到(&)参数再对参数值进行替换!
      

  2.   

    去找找看url重写技术  应该有帮助的
      

  3.   

    2000
    换成绑定的不就行了。<%=urlpara %>后台
    public static string urlpara=string.Empty;赋值
      

  4.   

                string str = "\"http://www.znpx.net/Default.aspx?ID=1&year=2000&type=3\"";
                string str1 = "http://www.znpx.net/Default.aspx?ID=1&year=2000";
                string result = Regex.Replace(str, @"(?is)(?<=&year=)[^&]*", "2011");
                string result1 = Regex.Replace(str1, @"(?is)(?<=&year=)[^&]*", "2011");
                Response.Write(result);
                Response.Write("<br/>");
                Response.Write(result1);
      

  5.   


    /*
    结果:
    "http://www.znpx.net/Default.aspxID=1&year=2011&type=3"
    http://www.znpx.net/Default.aspx?ID=1&year=2011
    */
      

  6.   

    //File TestYear.cs
    //using System;
    using System.Text.RegularExpressions;class Sample
    {
    public static void Main()
    {
    //替换"&year="之后"&"之前的字符 的正则表达式
    string pattern="&year=.*&";
    Regex rgx=new Regex(pattern);
    //输入的字符串
    string inputStr=@"string url=' http://www.znpx.net/Default.aspx?ID=1&year=2000&type=3;";
    //要替换的字符串
    string replaceStr="&year=2001&";
    string outputStr=rgx.Replace(inputStr,replaceStr); Console.WriteLine(outputStr);
    Console.Read();
    }
    }
      

  7.   


    Regex re=new Regex("&year=[\d]{0,4}");
      

  8.   

    这个很简单,用JAVASCRIPT脚本就很好,function a(){
     var str="张三喜欢李四";
     str=str.replace(/张三/,"王五");
     alert(str);
     
    }
      

  9.   

    正则只能匹配不能替换的,这点必须得清楚 你如果想替换的话 直接写个方法带个参然后得到url要替换的值把带的参replace替换掉。
      

  10.   


    如果URL还有种可能呢?
    如:string str1 = "http://www.znpx.net/Default.aspx?year=2000&ID=1";
    怎么把这个加进正则啊?之前给的那个OK,现在是可能会出现?year=不一定是&year=
      

  11.   


                string str = "\"http://www.znpx.net/Default.aspx?ID=1&year=2000&type=3\"";
                string str1 = "http://www.znpx.net/Default.aspx?ID=1&year=2000";
                string str2 = "http://www.znpx.net/Default.aspx?year=2000";
                string result = Regex.Replace(str, @"(?is)(?<=[&?]year=)[^&]*", "2011");
                string result1 = Regex.Replace(str1, @"(?is)(?<=[&?]year=)[^&]*", "2011");
                string result2 = Regex.Replace(str2, @"(?is)(?<=[&?]year=)[^&]*", "2011");
                Response.Write(result);
                Response.Write("<br/>");
                Response.Write(result1);
                Response.Write("<br/>");
                Response.Write(result2);
    /*
    结果
    "http://www.znpx.net/Default.aspx?ID=1&year=2011&type=3"
    http://www.znpx.net/Default.aspx?ID=1&year=2011
    http://www.znpx.net/Default.aspx?year=2011 
    */
      

  12.   

    url = url.Replace("&year=2000","&year=2001");
    Replace传递的值要再赋值的……