日期:2014-05-18  浏览次数:20806 次

C#从无规律的字符串中取其子字符串的问题,详细如下:
现有字符串:"xyxdlskdABCsdkfdsdfABCsdfabcsdkfABC"


如何取出从ABC开始到下一个ABC出现的所有子子符串。


------解决方案--------------------
split...~
------解决方案--------------------

string str = "xyxdlskdABCsdkfdsdfABCsdfabcsdkfABC";
foreach (string s in str.Split(new string[]{"ABC"}, StringSplitOptions.RemoveEmptyEntries))
{
Console.WriteLine(s);
}

输出:
xyxdlskd
sdkfdsdf
sdfabcsdkf

str.Split的结果是一个数组,如果不要第一条,可以从1开始
------解决方案--------------------
正则表达式
------解决方案--------------------
探讨

string str = "xyxdlskdABCsdkfdsdfABCsdfabcsdkfABC";
foreach (string s in str.Split(new string[]{"ABC"}, StringSplitOptions.RemoveEmptyEntries))
{
Console.WriteLine(s);
}

输出:
xyxdlskd
sdkfdsdf
sdfabcsdkf

str.Split的结果是一个数组,如果不要第一条,可以从1开始

------解决方案--------------------
又是正则表达式。

正则表达式是通用的,各领域都在使用。

建议你全面的学习一下,《精通正则表达式》
------解决方案--------------------
正则:
C# code
(?i)(?<=abc)[\s\S]*?(?=abc)

------解决方案--------------------
(?si)ABC(?<mysubstring>.*?)ABC