string text = File.ReadAllText(@"E:\桌面\impovement.txt", Encoding.Default);
            Regex r;
            Match m;
             r = new Regex(@"(\[Font=([\S]+)\])([ \S\t]*?)(\[\/Font\])", RegexOptions.IgnoreCase);
             for (m = r.Match(text); m.Success; m = m.NextMatch())
             {                 txtOutput.AppendText(m.Groups[0].ToString());
                 txtOutput.AppendText(m.Groups[2].ToString());
                 txtOutput.AppendText(m.Groups[3].ToString());
             }//文档内容如下AAAAAAAAAAA
ccccvx[font=第一个] 我要的 [/font]sdssddssds
BBBBBBBBBBBBB[font=第一个] 我要的 [/font]BBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCccc
//结束
我这个怎么提不出来啊?正则这里写不对吗?请帮忙看看,谢谢!正则分组regexstring

解决方案 »

  1.   

     txtOutput.AppendText(m.Groups[0].Value);
     txtOutput.AppendText(m.Groups[2].Value);
     txtOutput.AppendText(m.Groups[3].Value);
      

  2.   

    up特尔嵌入式在线培训课堂
    首届携程大赛开始报名啦
    CSDN官方微信正式上线
      

  3.   


    string str = "AAAAAAAAAAA\n" +
                            "ccccvx[font=第一个] 我要的 [/font]sdssddssds\n" +
                            "BBBBBBBBBBBBB[font=第一个] 我要的 [/font]BBBBBBBBBBBBBBB\n" +
                            "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCccc";
                MatchCollection matches = Regex.Matches(str, @"\[font=([^\]]+)\](.+?)(\[/font\])", RegexOptions.IgnoreCase);
                foreach (Match match in matches)
                {
                    Console.WriteLine(match.Groups[0].Value);
                    Console.WriteLine(match.Groups[2].Value);
                    Console.WriteLine(match.Groups[3].Value);
                }
      

  4.   

      <script type="text/javascript">
    var source = "AAAAAAAAAAA\nccccvx[font=第一个] 我要的 [/font]sdssddssds\nBBBBBBBBBBBBB[font=第一个] 我要的 [/font]BBBBBBBBBBBBBBB\nCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCccc";
    var regexp = /(?:\[Font=(?:[\S]+)\])([ \S\t]*?)(?:\[\/Font\])/ig;
    while(regexp.test(source)){
    alert(RegExp.$1);
    }
      </script>
    这是javascript匹配的。如果不想捕获。就在表达式前加个?:。上面匹配出来的结果为两个"我要的"