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

本文关键字:字符串 分隔 何用逗 | 更新日期: 2023-09-27 18:02:55

我需要用逗号分隔下面的字符串,并得到下面的块。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

谢谢。

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

试试这个:

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();