Split分割字符串使用方法 例子 部分正则表达式

时间:2022-12-20 18:51:20
第一种方法: 
string s=abcdeabcdeabcde; 
string[] sArray=s.Split(c) ; 
foreach(string i in sArray) 
Console.WriteLine(i.ToString()); 
输出下面的结果: 
ab 
deab 
deab 
de 

第二种方法: 
我们看到了结果是以一个指定的字符进行的分割。使用另一种构造方法对多个字符进行分割: 
string s=abcdeabcdeabcde 
string[] sArray1=s.Split(new char[3]{c,d,e}) ; 
foreach(string i in sArray1) 
Console.WriteLine(i.ToString()); 
可以输出下面的结果: 
ab 
ab 
ab 

第三种方法: 
除了以上的这两种方法以外,第三种方法是使用正则表达式。新建一个控制台项目。然后先添加 using System.Text.RegularExpressions; 
System.Text.RegularExpressions 
string content=agcsmallmacsmallgggsmallytx; 
string[]resultString=Regex.Split(content,small,RegexOptions.IgnoreCase) 
foreach(string i in resultString) 
Console.WriteLine(i.ToString()); 
输出下面的结果: 
agc 
mac 
ggg 
ytx 
示例如:string[] STR_ARR = System.Text.RegularExpressions.Regex.Split(STR_Data, @"多个字符串分隔符"); 

第四种方法: 
string str1=我*****是*****一*****个*****教*****师; 
string[] str2; 
str1=str1.Replace(*****,*) ; 
str2=str1.Split(*) ; 
foreach(string i in str2) 

Console.WriteLine(i.ToString()); 


第五种方法: 
string str1=我**是*****一*****个*****教*****师; 
我希望显示的结果为:我是一个教师。 
我如果采用上面的第四种方法来做就会产生下面的错误:我 是一个教师。中间有空格输出,所以输出结果并不是希望的结果,这就又回到了正则表达式了,这时可以采用下面的第五种方法: 
string str1=我**是*****一*****个*****教*****师; 
string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[*]+); 
foreach(string i in str2) 
Console.WriteLine(i.ToString()); 

这里通过[*]+ 巧妙的完成了我们的目标。


正则表达式 

 string teststring = "123-456-'78-9'-10";
            Regex reg = new Regex(@"'[^']*'|[^-]+");
            MatchCollection mc = reg.Matches(teststring);
            foreach (Match m in mc)
            {
              Console.Write( m.Value + "\n");
            }
123
456
'78-9'
10