分割字符串的特定字符,但忽略某些情况c# LINQ



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

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

我的单词1,我的单词2,我的单词3,"我的单词x,我的单词y,我的单词z",我的单词4,我的单词5

应该被分割,这样将显示:

my word 1

my word 2

my word 3

"我的话我的话x, y, z"

my word 4

my word 5

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

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

相关内容

  • 没有找到相关文章

最新更新