在特定字符处拆分字符串但忽略某些情况 C# LINQ
Posted
技术标签:
【中文标题】在特定字符处拆分字符串但忽略某些情况 C# LINQ【英文标题】:Split string at specific character but ignore some cases C# LINQ 【发布时间】:2013-01-12 18:45:40 【问题描述】:我需要用逗号分隔字符串,但忽略某些情况。
例如这个字符串(每个逗号后面是一个空格字符):
我的词 1,我的词 2,我的词 3,“我的词 x,我的词 y,我的词 z”,我的词 4,我的词 5
应该拆分以便显示:
我的话 1
我的话 2
我的话 3
“我的词 x,我的词 y,我的词 z”
我的话 4
我的话 5
基本上所有的单词都应该在逗号之后分开,除了双引号中的单词应该与引号一样显示。
【问题讨论】:
【参考方案1】: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
【讨论】:
以上是关于在特定字符处拆分字符串但忽略某些情况 C# LINQ的主要内容,如果未能解决你的问题,请参考以下文章