2012-01-31 82 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}); 
} 

雖然沒有測試....

相關問題