首页 >Java >java教程 >如何在 Java 中分割逗号分隔的文本,同时忽略引号内的逗号?

如何在 Java 中分割逗号分隔的文本,同时忽略引号内的逗号?

Susan Sarandon
Susan Sarandon原创
2024-12-23 17:08:14786浏览

How to Split Comma-Separated Text While Ignoring Commas Within Quotes in Java?

分割逗号分隔的文本忽略引号内的逗号

当某些值在引号内包含逗号时,解析包含逗号分隔值的文本可能会很困难。使用带有简单逗号分隔符的 Java 的 String.split 方法通常会产生包含这些带引号的逗号的分割值。这个问题需要一个区分引号外和引号内逗号的解决方案。

这个问题的解决方案在于正则表达式。下面的Java代码片段提供了一个全面的解决方案:

String[] arr = str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");

这个正则表达式根据逗号分割字符串,这些逗号后面没有紧跟偶数个双引号。正则表达式的详细解释如下:

  • ,(?=:以逗号分割字符串,后跟前瞻表达式。
  • ( ?=(?:[^"]*"[^"]*")*[^"]*$):先行表达式确保逗号后面跟着偶数个 double引号。

    • [^"]*:匹配零个或多个非引号字符。
    • "[^"]*":匹配一对带非引号的双引号
    • *:匹配前面的表达式零次或多次(偶数个 double引号)。
    • [^"]*$:确保前瞻表达式匹配到字符串末尾,防止每个逗号触发分割。

通过使用此正则表达式,您可以有效地拆分逗号分隔的文本,忽略双引号内的逗号。这种方法允许您以可靠的方式解析文本。方式,确保引用的值保持完整。

以上是如何在 Java 中分割逗号分隔的文本,同时忽略引号内的逗号?的详细内容。更多信息请关注PHP中文网其他相关文章!

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