首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

正则分组提取,该如何处理

2013-02-24 
正则分组提取string text File.ReadAllText(@E:\桌面\impovement.txt, Encoding.Default)Regex rMat

正则分组提取
    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
//结束
我这个怎么提不出来啊?正则这里写不对吗?请帮忙看看,谢谢! 正则 分组 regex string
[解决办法]
 txtOutput.AppendText(m.Groups[0].Value);
 txtOutput.AppendText(m.Groups[2].Value);
 txtOutput.AppendText(m.Groups[3].Value);
[解决办法]


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);
            }

热点排行