【问题标题】:Split string at specific character but ignore some cases C# LINQ在特定字符处拆分字符串但忽略某些情况 C# LINQ
【发布时间】:2013-01-12 18:45:40
【问题描述】:

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

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

我的词 1,我的词 2,我的词 3,“我的词 x,我的词 y,我的词 z”,我的词 4,我的词 5

应该拆分以便显示:

我的话 1

我的话 2

我的话 3

“我的词 x,我的词 y,我的词 z”

我的话 4

我的话 5

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

【问题讨论】:

    标签: string linq split comma


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多