【发布时间】:2013-01-12 18:45:40
【问题描述】:
我需要用逗号分隔字符串,但忽略某些情况。
例如这个字符串(每个逗号后面是一个空格字符):
我的词 1,我的词 2,我的词 3,“我的词 x,我的词 y,我的词 z”,我的词 4,我的词 5
应该拆分以便显示:
我的话 1
我的话 2
我的话 3
“我的词 x,我的词 y,我的词 z”
我的话 4
我的话 5
基本上所有的单词都应该在逗号之后分开,除了双引号中的单词应该与引号一样显示。
【问题讨论】:
我需要用逗号分隔字符串,但忽略某些情况。
例如这个字符串(每个逗号后面是一个空格字符):
我的词 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
【讨论】: