例:
"
start
a:123123
b:123456789
c:123456
/over
start
d:123123
e:123456789
f:123456
/over"
就像上边的例子一样,我要匹配出start至/over的内容
但是
如果用"^start[]{*}/over"这样匹配的话,
我就得到了
"
start
a:123123
b:123456789
c:123456
/over
start
d:123123
e:123456789
f:123456
/over"
,哪位大侠帮帮忙啊
"
start
a:123123
b:123456789
c:123456
/over
start
d:123123
e:123456789
f:123456
/over"
就像上边的例子一样,我要匹配出start至/over的内容
但是
如果用"^start[]{*}/over"这样匹配的话,
我就得到了
"
start
a:123123
b:123456789
c:123456
/over
start
d:123123
e:123456789
f:123456
/over"
,哪位大侠帮帮忙啊
J20T20 00010001
L020 E0149741007021701HSP CFW 09
L810002000000300000000002
M2001TBJU3855514
S2001113369
T119990492610005020529000900001800100014270020006579005200000200690031200
/WBE3051010952
XOL 2.6.0063017a 20100703Serial C JX000000
J20T20 00010001
L021 E0149751007021703HSP CFW 09
00010027000002700000000000217107580000
L810002000000300000000002
M2001TBJU3857543
S2001113370
T119990492610005020529000900001800100014270020006579005200000200690031200
/WBE2009572559 就是这样的例子啊
{
string src = @"XOL 2.6.0063017a 20100703Serial C JX000000
J20T20 00010001
L020 E0149741007021701HSP CFW 09
L810002000000300000000002
M2001TBJU3855514
S2001113369
T119990492610005020529000900001800100014270020006579005200000200690031200
/WBE3051010952
XOL 2.6.0063017a 20100703Serial C JX000000
J20T20 00010001
L021 E0149751007021703HSP CFW 09
00010027000002700000000000217107580000
L810002000000300000000002
M2001TBJU3857543
S2001113370
T119990492610005020529000900001800100014270020006579005200000200690031200
/WBE2009572559";
foreach (Match m in Regex.Matches(src, @"XOL 2.6.0063017a 20100703Serial C JX000000[\W\w]([\W\w]*?)/WBE\d{10}", RegexOptions.Multiline))
{
Console.WriteLine(m.Groups[1].Value.Trim());
Console.WriteLine();
}
}
J20T20 00010001
L020 E0149741007021701HSP CFW 09
L810002000000300000000002
M2001TBJU3855514
S2001113369
T119990492610005020529000900001800100014270020006579005200000200690031200
/WBE3051010952
XOL 2.6.0063017a 20100703Serial C JX000000
J20T20 00010001
L021 E0149751007021703HSP CFW 09
00010027000002700000000000217107580000
L810002000000300000000002
M2001TBJU3857543
S2001113370
T119990492610005020529000900001800100014270020006579005200000200690031200
/WBE2009572559";
Regex reg = new Regex(@"(?s)XOL\b((?!XOL\b).)*");
foreach (Match m in reg.Matches(str))
{
Response.Write(m.Value + "<br/><br/><br/>");
}
public void Test()
{
string yourStr = @"start
a:123123
b:123456789
c:123456
/over
start
d:123123
e:123456789
f:123456
/over";
foreach (string item in GetItems(yourStr,"start","/over"))
{
Console.WriteLine(item);
Console.WriteLine("-------------");
}
} /// <summary>
/// 指定文本,指定头尾,取内容
/// </summary>
/// <param name="text">匹配文本</param>
/// <param name="start">段落头</param>
/// <param name="end">段落尾</param>
/// <returns>匹配到的内容</returns>
public static string[] GetItems(string text, string start, string end)
{
List<string> result = new List<string>();
foreach (Match m in Regex.Matches(text,Regex.Escape(start)+"(.+?)"+Regex.Escape(end), RegexOptions.Compiled| RegexOptions.Singleline))
{
result.Add(m.Value);//如果所有内容就是这样
//result.Add(m.Groups[1].Value);//如果只要中间内容就这行
}
return result.ToArray();
}