逗号分隔符问题

时间:2017-05-01 08:15:33

标签: c# .net delimiter

我正在开发一个基于C#的应用程序,并希望使用"," (逗号)分隔符来分割字符串。当逗号是我的字符串的一部分而不是分隔符(例如我们在地址中)时,问题就到了。 例如:

输入:" A,B,维纳斯,纽约10001"

实际输出:" A"," B","维纳斯","纽约"

必需的输出:" A"," B","维纳斯,纽约"

此类问题的最佳做法是什么? 感谢。

1 个答案:

答案 0 :(得分:1)

我建议您查看dotctorZohar Peled条评论。这可以产生更强大的解决方案。但是,如果您仍然需要按照问题中的提及拆分字符串,则可以执行以下操作。

我注意到输入为split的逗号不是后跟whitespace。如果逗号后面有whitespace,则字符串不应为split。如果您的情况总是如此,那么以下内容将起作用:

static void Main(string[] args)
{
    var result = SplitOnCommaNotFollowedByWhiteSpace("A,B,Venus, New York 10001");
    //Result: string["A", "B", "Venus, New York"]
}

public static string[] SplitOnCommaNotFollowedByWhiteSpace(string input)
{
    var regex = new Regex(@",(?!\s)", RegexOptions.IgnoreCase);
    return regex.Split(input);
}