2012-01-31 84 views
0

我有以下内容的文件分割字符串在C#中使用正则表达式

aaaaa(fasdfiojasdlfkj) 
213.df(fasdfsadffdfsd) 
53434534535(oipowerier) 
2.3.*12.4(asdfrwer) 

我想有这样的最终名单,

List<string[]> sList = new List<string[]>(); 
sList[0] = new string[]{"aaaaa", "fasdfiojasdlfkj"}; 
sList[1] = new string[]{"213.df", "fasdfsadffdfsd"}; 
sList[2] = new string[]{"53434534535", "oipowerier"}; 
sList[3] = new string[]{"2.3.*12.4", "asdfrwer"}; 

回答

3

你可以做到这一点没有正则表达式:

var result = stringlist.ConvertAll(x =>x.Split(new char[] {'(',')'}, 
          StringSplitOptions.RemoveEmptyEntries)); 
3

你不需要Regex这个 - string.Split就够了。

如果你使用它行:

List<string[]> sList = new List<string[]>(); 
foreach(var line in fileLines) 
{ 
    sList.Add(line.Split(new Char[]{ '(', ')'}, 
       StringSplitOptions.RemoveEmptyEntries)); 
} 
0
List<string[]> sList = new List<string[]>(); 

MatchCollection matches = Regex.Matches(yourtext, @"([^\(]+)\(([^\)]+)\)"); 

foreach(Match mymatches in matches) 
{ 

    //get the data 
    string firststring = mymatches.Groups[1].Value; 
    string secondstring = mymatches.Groups[2].Value; 

    sList.Add(new string[] {firststring, secondstring}); 
} 

虽然没有测试....

相关问题