reg = new Regex("<li class=\"name\">(.+?)</li>", RegexOptions.Singleline);
            txt = reg.Replace(txt, "[$1]");
如上,我想将"$1"作下字符处理后再替换,怎么办?如去除空白字符等?
我试了txt=reg.Replace(txt,"["+Trim("$1")+"]")等形式,好像不认识……,Trim得到的结果就是两字符"$1",而不是引用值。

解决方案 »

  1.   

    按你的意图,写法是这样的reg = new Regex("<li class=\"name\">(.+?)</li>", RegexOptions.Singleline);
    txt = reg.Replace(txt, delegate(Match m) { return "[" + m.Groups[1].Value.Trim() + "]"; });
      

  2.   

    或者改下正则reg = new Regex("<li class=\"name\">\\s*(.+?)(?<!\\s)\\s*</li>", RegexOptions.Singleline);
    txt = reg.Replace(txt, "[$1]");
      

  3.   

    string temp = string.Empty;
    reg.Replace(txt, delegate(Match m)
                {
                    return m.Groups[0].Value;
                })