&q=%B5%D8%B7%BD&其中 中间的部分 %B5%D8%B7%BD  是可以自由变换的, 求个匹配的正则表达式。才开始接触这个,看着说明写了个。。结果不行。也贴出来,看看那里错。^[&q-][.]+-&$谢谢先

解决方案 »

  1.   

    这部分是UNICODE编码有URL Encode的,不需要什么匹配,你能转换成功就说明OK了,否则格式对了,也不保证内容对。
      

  2.   

    [&q-].*&
    谢谢!但是还不是我要的
    如果要求&q 必须在前面呢,该怎么写?tn=sty&rn=10&pn=5&s=0&pid=develop&f=0&h=1&q=%B5%D8%B7%BD&pids=&我想要的是在上面的字符串中把红色的部分用正则表达式匹配出来
      

  3.   

    最后那个“&”要它的什么用?&q=[^&]+&
      

  4.   

    string test = "tn=sty&rn=10&pn=5&s=0&pid=develop&f=0&h=1&q=%B5%D8%B7%BD&pids=&";
    Regex reg = new Regex(@"&q=[^&]+&");
    Match m = reg.Match(test);
    if (m.Success)
    {
        richTextBox2.Text = m.Value;
    }
      

  5.   


                Regex reg = new Regex(@"&q=([^&])+&");            foreach (Match m in reg.Matches(@"tn=sty&rn=10&pn=5&s=0&pid=develop&f=0&h=1&q=%B5%D8%B7%BD&pids=&"))
                {
                    Console.WriteLine(m.Value); //&q=%B5%D8%B7%BD&
                }
      

  6.   

    刚给你的是匹配你顶楼说的情况
    你4楼的
    tn=sty&rn=10&pn=5&s=0&pid=develop&f=0&h=1&q=%B5%D8%B7%BD&pids=&
    和一开始的不同了。
    &q=(%[A-F0-9]{2})*&
    可以的
    或是
    q=(%[A-F0-9]{2})*q=后面是unicode的话,应该是十六进制的。
      

  7.   

    &q=[^&]+&这个可以。谢谢让我明白了^的用法,^是匹配的输入字符的行首,我错误的理解为匹配字符串的行首了!