我需要用逗号分割一个字符串,但忽略某些情况。
例如这个字符串(每个逗号后面是一个空格字符):
我的话 1,我的话 2,我的话 3,“我的话 x,我的话 y,我的话 z”,我的话 4,我的话 5
应该拆分,以便显示:
我的话 1
我的话 2
我的话 3
“我的话 x,我的话 y,我的话 z”
我的话 4
我的话 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