0

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

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

我的话 1,我的话 2,我的话 3,“我的话 x,我的话 y,我的话 z”,我的话 4,我的话 5

应该拆分,以便显示:

我的话 1

我的话 2

我的话 3

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

我的话 4

我的话 5

基本上所有的单词都应该在逗号之后分开,除了双引号中的单词应该像引号一样显示。

4

1 回答 1

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
于 2013-01-12T18:56:21.660 回答