C# 正则表达式拆分:处理引用字符串中的逗号
处理引用文本中的逗号时,标准 C# 基于逗号的字符串拆分会失败。 正则表达式提供了一个强大的解决方案。
考虑将字符串“('ABCDEFG', 123542, 'XYZ 99,9')”拆分为三个组成部分:'ABCDEFG', 123542 和 'XYZ 99,9'。
以下正则表达式标识逗号外部引用的部分:
<code class="language-csharp">",(?=(?:[^']*'[^']*')*[^']*$)"</code>
此表达式确保只有前面没有偶数个单引号的逗号(表示闭引号部分)才用作分割点。
以下是如何将其与 Regex.Split
一起使用:
<code class="language-csharp">string inputString = "('ABCDEFG', 123542, 'XYZ 99,9')"; string[] splitString = Regex.Split(inputString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
splitString
数组将包含:
splitString[0]
= 'ABCDEFG'splitString[1]
= 123542splitString[2]
= 'XYZ 99,9'这种正则表达式方法可以准确地分割字符串,即使逗号出现在带引号的子字符串中也能保持数据完整性。
以上是如何在 C# 中拆分逗号分隔的字符串,同时忽略引号内的逗号?的详细内容。更多信息请关注PHP中文网其他相关文章!