【问题标题】:Splitting on "," but not "\," [duplicate]拆分“,”而不是“\,”[重复]
【发布时间】:2013-10-13 07:51:43
【问题描述】:

我正在寻找匹配 , 的正则表达式,但在 Java 的正则表达式引擎中忽略 \,。这很接近:

[^\\],

但是,它匹配前一个字符(除了逗号),这是行不通的。

也许正则表达式方法完全是错误的。我打算使用 String.split() 来解析一个带有转义逗号的简单 CSV 文件(不能使用外部库)。

【问题讨论】:

  • 啊,绝对是重复的。抱歉,我在寻找解决方案时错过了它。

标签: java regex parsing csv


【解决方案1】:

您需要negative look-behind assertion

String[] arr = str.split("(?<![^\\\\]\\\\),");

请注意,您需要 4 个反斜杠。首先转义 Java 字符串文字的反斜杠。然后再次转义正则表达式的两个反斜杠。

【讨论】:

  • 太好了,谢谢!在我放弃并提出这个问题之前,我正在阅读前瞻。
  • @DavidChouinard 不客气 :)
  • 这在Split\\,this之类的字符串上失败。
  • @TimPietzcker。哎呀。错过了边缘情况。将编辑正则表达式。谢谢:)
  • 好的,那么Don't split\\\,this呢?
猜你喜欢
  • 1970-01-01
  • 2021-07-28
  • 2018-12-07
  • 2021-07-06
  • 2015-06-12
  • 2013-01-15
  • 2010-12-04
  • 2020-09-29
  • 2017-07-22
相关资源
最近更新 更多