我正在开发一个基于C#的应用程序,并希望使用"," (逗号)分隔符来分割字符串。当逗号是我的字符串的一部分而不是分隔符(例如我们在地址中)时,问题就到了。 例如:
输入:" A,B,维纳斯,纽约10001"
实际输出:" A"," B","维纳斯","纽约"
必需的输出:" A"," B","维纳斯,纽约"
此类问题的最佳做法是什么? 感谢。
答案 0 :(得分:1)
我建议您查看dotctor和Zohar 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);
}