如何用逗号分隔这个字符串?

时间:2015-07-15 15:10:53

标签: c# .net

我需要用逗号分隔以下字符串并在下面获取块。什么是C#中最优雅的解决方案?当然,String.Split()也会检测到内部逗号。

"'_82X5_00_11 (2,RAL 7035)', '_82X5_00_11 (2,RAL 7035)', #349, #1 "

结果应为:

'_82X5_00_11 (2,RAL 7035)'
'_82X5_00_11 (2,RAL 7035)'
#349
#1

感谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

string aux = "'_82X5_00_11 (2,RAL 7035)', '_82X5_00_11 (2,RAL 7035)', #349, #1 ";
var result = Regex.Split(aux, ("(?!\\B'[^']*),(?![^']*'\\B)"));

修改

这不是" '', '' ",因为''不含任何东西。

解决方案:

string pattern = "('[^']+'|[^',^\\s]+|['']+)";
string str1 = "'_82X5_00_11 (2,RAL 7035)', '_82X5_00_11 (2,RAL 7035)', #349, #1 ";
string str2 = "'', '', #344, #334";
var result1 = Regex.Matches(str1, pattern).Cast<Match>().Select(x => x.Value).ToArray();
var result2 = Regex.Matches(str2, pattern).Cast<Match>().Select(x => x.Value).ToArray();