2013-01-12 59 views
0

我需要用逗号分割字符串,但忽略某些情况。在特定字符处拆分字符串,但忽略某些情况C#LINQ

例如此字符串(每个逗号之后是一个空白字符):

我的字1,我的字2,我的字3中,“我的字x,我的字Y,我的字Z”,我字4,我的字5

应拆分,使得将显示:

我的字1

我的字2

我的字3

“我的字x,我的字Y,我的字Z”

我的字4

我的字5

基本上所有的单词都应该在逗号后分开,除了那些在dou应该显示引号,因为它们与引号一起显示。

回答

2
string text = @"my word 1, my word 2, ""my word x, my word y"", my word 3"; 
string pattern = @"[^,""]+|""([^""]*)"""; 
IEnumerable<string> result = Regex.Matches(text, pattern).Cast<Match>() 
            .Select(m => m.Value.Trim()) 
            .Where(s => !String.IsNullOrWhiteSpace(s)); 

结果:

my word 1  
my word 2  
"my word x, my word y"  
my word 3 
相关问题