一尘不染

C#正则表达式拆分-引号外的逗号

c#

我得到了很多具有以下格式的字符串(实际上是SQL代码段):

('ABCDEFG', 123542, 'XYZ 99,9')

我需要使用C#拆分此字符串,以便获得:

  • ‘ABCDEFG’
  • 123542
  • XYZ 99,9

我最初使用的是simple
Split(','),但是由于最后一个参数中的逗号导致输出混乱,因此我需要使用Regex来获取它。问题是我在正则表达式中仍然很笨拙,而且我似乎无法破解模式,主要是因为在该字符串中,数值和字母数字参数都可能随时存在。

我可以根据引号外的每个逗号拆分该字符串吗?干杯


阅读 351

收藏
2020-05-19

共1个答案

一尘不染

您可以分割所有逗号,并在它们后面加上偶数个引号,使用以下正则表达式查找它们:

",(?=(?:[^']*'[^']*')*[^']*$)"

你会用它像

var result = Regex.Split(samplestring, ",(?=(?:[^']*'[^']*')*[^']*$)");
2020-05-19