正则表达式截取问题

like_001 2012-05-03 05:12:12
[Module]111
[ModuleName]name1
[ModuleAbbr]AM1
aaaaaaa

[Module]222
[ModuleName]name2
[ModuleAbbr]AM2
bbbbbbbbb

[Module]333
[ModuleName]name3
[ModuleAbbr]AM3
ccccccc

[Module]

怎么用一个正则表达式 截取各个[Module]之间的信息,麻烦给个详细的!~刚学正则

...全文
124 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2012-05-04
  • 打赏
  • 举报
回复

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);
}
你的选择H 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
[Module]111
[ModuleName]name1
[ModuleAbbr]AM1
aaaaaaa

[Module]222
[ModuleName]name2
[ModuleAbbr]AM2
bbbbbbbbb

[Module]333
[ModuleName]name3
[ModuleAbbr]AM3
ccccccc

[Module]

怎么用一个正……
[/Quote]
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);
-过客- 2012-05-03
  • 打赏
  • 举报
回复
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:
===============
*/
兔子-顾问 2012-05-03
  • 打赏
  • 举报
回复
string[] fields = Regex.Split(yourStr,@"\[Module\]").Where(s=>!string.IsNullOrEmpty(s)).ToArray();

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧