【问题标题】:Java Regex for , not followed by a space [duplicate]Java Regex for ,后面没有空格[重复]
【发布时间】:2013-08-03 17:34:51
【问题描述】:

我正在尝试使用正则表达式分隔 csv 文件值,问题是句子周围有引号,而我尝试过的正则表达式似乎没有正确执行。

"All's Well, Ends Well 2012",Comedy

这是包含在 CSV 中的字符串之一,我尝试用很多不同的正则表达式将其分隔,但它一直只返回整个字符串而不将其分隔。

关于我可以使用的正则表达式的任何建议或解决方法?

【问题讨论】:

标签: java regex csv


【解决方案1】:

最好的建议是使用 CVS 解析器,例如 http://opencsv.sourceforge.net/,正则表达式不是解析 CSV 的最佳选择

【讨论】:

  • 除非你擅长正则表达式:)
【解决方案2】:

使用带有split() 的正则表达式,仅当输入的其余部分中出现偶数个引号时才以逗号分隔:

String[] parts = line.split(",(?=(([^\"]*\"){2})*[^\"]*$)");

查看此代码在live demo on ideone 中执行

【讨论】:

  • 谢谢你这个完美的作品^^我在处理中使用它,不确定我是否可以在其中包含外部库。非常感谢
猜你喜欢
  • 2020-08-25
  • 1970-01-01
  • 2021-07-25
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多