2013-01-12 58 views
0

我需要用逗號分割字符串,但忽略某些情況。在特定字符處拆分字符串,但忽略某些情況C#LINQ

例如此字符串(每個逗號之後是一個空白字符):

我的字1,我的字2,我的字3中,「我的字x,我的字Y,我的字Z」,我字4,我的字5

應拆分,使得將顯示:

我的字1

我的字2

我的字3

「我的字x,我的字Y,我的字Z」

我的字4

我的字5

基本上所有的單詞都應該在逗號後分開,除了那些在dou應該顯示引號,因爲它們與引號一起顯示。

回答

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 
相關問題