在特定字符处拆分字符串但忽略某些情况C#LINQ

时间:2013-01-12 18:45:41

标签: string linq split comma

我需要用逗号分割字符串,但忽略某些情况。

例如此字符串(在每个逗号后面是空格字符):

我的第1个字,我的字2,我的字3,“我的字x,我的字y,我的字z”,我的字4,我的字5

应该拆分,以便显示:

我的话1

我的话2

我的话3

“我的字x,我的字y,我的字z”

我的话4

我的话5

基本上所有单词都应该用逗号分隔,但双引号中的单词应该用引号显示。

1 个答案:

答案 0 :(得分: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