正则分组提取
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);
}