正则表达式截取问题
[Module]111[ModuleName]name1
[ModuleAbbr]AM1
aaaaaaa
[Module]222
[ModuleName]name2
[ModuleAbbr]AM2
bbbbbbbbb
[Module]333
[ModuleName]name3
[ModuleAbbr]AM3
ccccccc
[Module]
怎么用一个正则表达式 截取各个[Module]之间的信息,麻烦给个详细的!~刚学正则
--------------------编程问答--------------------
string[] fields = Regex.Split(yourStr,@"\[Module\]").Where(s=>!string.IsNullOrEmpty(s)).ToArray();--------------------编程问答-------------------- try...
Regex reg = new Regex(@"\[(?<M>Module[^\]]*)\](?<V>[^\[]*)(?<!\s)");--------------------编程问答--------------------
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += "Module:" + m.Groups["M"].Value + "\nValue:" + m.Groups["V"].Value + "\n===============\n";
}
/*-----输出-----
Module:Module
Value:111
===============
Module:ModuleName
Value:name1
===============
Module:ModuleAbbr
Value:AM1
aaaaaaa
===============
Module:Module
Value:222
===============
Module:ModuleName
Value:name2
===============
Module:ModuleAbbr
Value:AM2
bbbbbbbbb
===============
Module:Module
Value:333
===============
Module:ModuleName
Value:name3
===============
Module:ModuleAbbr
Value:AM3
ccccccc
===============
Module:Module
Value:
===============
*/
string str = @"[Module]111
[ModuleName]name1
[ModuleAbbr]AM1
aaaaaaa
[Module]222
[ModuleName]name2
[ModuleAbbr]AM2
bbbbbbbbb
[Module]333
[ModuleName]name3
[ModuleAbbr]AM3
ccccccc
[Module]
";
List<string> list=new List<string>();
MatchCollection matchs = Regex.Matches(str, @"(?<=\[Module])[\s\S]*?(?=\[Module])");
foreach(Match m in matchs)
list.Add(m.Value); --------------------编程问答--------------------
StreamReader reader = new StreamReader("c:\\1.txt");
string source = reader.ReadToEnd();
Regex reg = new Regex(@"(?<=(\[Module\]))[\s\S]*?(?=(\[Module\]))");
MatchCollection mc = reg.Matches(source);
foreach (Match m in mc)
{
MessageBox.Show(m.Value);
}
补充:.NET技术 , C#