scala:通过commnas拆分字符串,忽略引号之间的逗号

时间:2012-11-11 21:28:51

标签: regex parsing scala

  

可能重复:
  Java: splitting a comma-separated string but ignoring commas in quotes

显示一些代码更容易

我有以下内容:

scala> val a = """op1,"op2.1,op2.2",,op4""".split(",")
a: Array[java.lang.String] = Array(op1, "op2.1, op2.2", "", op4)

scala> a.foreach( println )
op1
"op2.1
op2.2"

op4

我想得到

scala> val a = """op1,"op2.1,op2.2",,op4""".split(",")
a: Array[java.lang.String] = Array(op1, "op2.1, op2.2", "", op4)

scala> a.foreach( println )
op1
op2.1, op2.2

op4

但我无法弄清楚用什么正则表达式来分割字符串

- 编辑 -

我在这个问题中找到了答案:Java: splitting a comma-separated string but ignoring commas in quotes

1 个答案:

答案 0 :(得分:10)

使用此正则表达式拆分,它应该有效:,(?=([^\"]*\"[^\"]*\")*[^\"]*$)