C# 正则表达式字符串分割:引号外的逗号
使用传统的基于逗号的分割方法处理包含嵌入逗号的字符串可能具有挑战性。本文演示了一种使用 C# 和正则表达式分割包含可能被引号包围的逗号的字符串的解决方案。
问题陈述:
考虑以下表示 SQL 代码片段的字符串:
<code>('ABCDEFG', 123542, 'XYZ 99,9')</code>
目标是将此字符串分割成三个不同的部分:
由于第三个参数 ("XYZ 99,9") 中的逗号不应被视为分隔符,因此出现了挑战。
正则表达式解决方案:
为了解决这个问题,我们可以使用一个正则表达式,该表达式仅在前面有偶数个单引号时才匹配逗号。此模式确保引号内的逗号不会被分割。
<code>",(?=(?:[^']*'[^']*')*[^']*$)"</code>
用法:
<code class="language-csharp">var result = Regex.Split(sampleString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
解释:
输出:
result 数组的输出如下:
<code>{"'ABCDEFG'", "123542", "'XYZ 99,9'"}</code>
这演示了根据引号外的逗号成功分割字符串,同时保持引号参数不变。
以上是C# 正则表达式如何使用引号内的逗号分割字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!