C# Regex Split - 引号外的逗号

标签 c# regex

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

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

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

  • 'ABCDEFG'
  • 123542
  • 'XYZ 99,9'

我最初使用的是简单的 Split(','),但由于最后一个参数中的逗号对输出造成严重破坏,我需要使用 Regex 来获取它。问题是我在正则表达式方面仍然很菜鸟,我似乎无法破解模式,主要是因为在该字符串中,数字和字母数字参数可能随时存在...

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

最佳答案

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

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

你会像这样使用它

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

关于C# Regex Split - 引号外的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3147836/

相关文章:

python - 正则表达式只返回匹配的第一部分

javascript - 检查模式是否不匹配

python - 如何在 Python 中用 ' ' 替换我的自定义字符?

c# - 使用 MVC 核心进行捆绑和缩小

c# - 这个 while 循环中发生了什么?

c# - 当我知道 Rally 中存在项目时,为什么使用用户故事名称和迭代进行查询会返回零项目?

regex - 删除最外面的括号

c# - NUnit DLL 版本不匹配

c# - 大量情况下的 Switch case 性能

javascript - JS 如何测试一个字符串是否只是缩写?