对于这个字符串:
<li  class="hl2 lb">·[军事]&nbsp; <a href='book/658/'>国内军事新闻 </a> 
  <li class="hm2 lb"> 
<a href='book/658/'>美国鹦鹉集体失语 中国“垮掉一代”惊人崛起! </a>  
<li class="hr2 lb tr"> 
<span class='nw'>2008-4-22 0:04:26 </span> 我用以下代码想把'book/658'替换成'search.aspx?658'为什么无法成功?            chr = new Regex(@"^(book/)([1-9]\d+/)$",RegexOptions.IgnoreCase);
            for (m = chr.Match(strResult); m.Success; m = m.NextMatch()) 
                { 
                strResult =strResult.Replace(m.Groups[0].ToString(), "search.aspx?"+m.Groups[2].ToString()); 
                } 

解决方案 »

  1.   

    当然无法成功了,楼主没有明白^和$的含义^ 与字符串开始的地方匹配,不匹配任何字符
    $ 与字符串结束的地方匹配,不匹配任何字符
     
    用了[1-9],后面为什么还要跟个\d
    楼主的这种代码浪费资源,效率也不会高
                string test = @"<li  class=""hl2 lb"">·[军事]&nbsp;  <a href='book/658/'>国内军事新闻  </a>  
       <li class=""hm2 lb"">  
    <a href='book/658/'>美国鹦鹉集体失语 中国“垮掉一代”惊人崛起!  </a>   
    <li class=""hr2 lb tr"">  
    <span class='nw'>2008-4-22 0:04:26  </span> ";            test = Regex.Replace(test, @"book/(\d+)", "search.aspx?" + "$1", RegexOptions.IgnoreCase);
                MessageBox.Show(test);
      

  2.   

    呵呵,给LZ介绍个好东西:Regulator,测试正则的好工具