首页 >后端开发 >C++ >C# 正则表达式如何解决以逗号作为分隔符的字符串拆分(引号内除外)?

C# 正则表达式如何解决以逗号作为分隔符的字符串拆分(引号内除外)?

DDD
DDD原创
2025-01-07 20:51:41224浏览

How Can C# Regex Solve String Splitting with Commas as Delimiters, Except Within Quotes?

使用正则表达式掌握 C# 中具有复杂模式的字符串拆分

本文解决了一个常见的编程挑战:使用逗号作为分隔符分割字符串,但前提是这些逗号没有用引号引起来。 在处理这种不规则的数据结构时,标准的字符串分割方法是不够的。

正则表达式解决方案

解决方案在于正则表达式的力量。以下正则表达式模式有效地识别和隔离引用部分之外的逗号:

<code class="language-csharp">",(?=(?:[^']*'[^']*')*[^']*$)"</code>

此模式巧妙地在剩余字符串中搜索逗号,后跟偶数个单引号。这确保了引用部分中的逗号被忽略。

应用此模式来分割字符串非常简单:

<code class="language-csharp">var result = Regex.Split(inputString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>

result 数组将准确包含所需的元素:

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

总结

正则表达式为涉及复杂模式的字符串操作任务提供了强大且灵活的解决方案。 这种方法提供了精确的控制,甚至可以从最非常规的字符串格式中准确地分割和提取元素。 这种技术对于处理具有不规则分隔符的数据非常有用。

以上是C# 正则表达式如何解决以逗号作为分隔符的字符串拆分(引号内除外)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn