【发布时间】:2015-09-05 21:14:47
【问题描述】:
我正在尝试使用逗号作为分隔符来拆分 csv 字符串。
val string ="A,B,"Hi,There",C,D"
我不能使用string.split(","),因为它会将"Hi,There" 拆分为两个不同的列。我可以使用正则表达式来解决这个问题吗?我来到了我不想使用的scala-csv parser。我希望有更好的方法来解决这个问题。我知道这不是一个小问题。如果人们可以分享他们解决此问题的方法,将会很有帮助。
【问题讨论】:
-
CSV 解析并不像您意识到的那样简单。因此,这种格式可能过于宽泛,无法提供完整的答案,询问工具在 SO 上是题外话,所以我认为这个问题不适合这个网站。
-
@Gábor 你误会了。我不想使用任何工具。我希望人们在这里分享逻辑或任何好的方法。我可以使用像
scala-csv这样的解析器来完成这个任务。但是,我想要一种开放的逻辑方法来解决这个问题。如果人们在这里分享方法,我认为这个问题会对很多人有所帮助。 -
@COSTA 解决这个问题的合乎逻辑的方法是使用已建立的库,因为 csv 解析非常重要。
-
使用 Scala 的解析器组合器 API,您可以编写一个符合 RFC 4180 的解析器,并且少于 30 个 LOC。但如前所述,您可以使用现有的解析器让您的生活更轻松。