Scala:按逗号分割字符串,忽略引号中的逗号

12

可能是重复问题:
Java:分割逗号分隔的字符串,但忽略引号中的逗号

更好的方式是通过代码来展示。

我有以下字符串:

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:拆分逗号分隔的字符串,但忽略引号中的逗号


你是否在处理CSV格式的输入数据? - sourcedelica
谢谢链接,m.buettner,它非常有效!!! - opensas
1个回答

16

使用这个正则表达式进行分割,它应该能正常工作:,(?=([^\"]*\"[^\"]*\")*[^\"]*$)


1
那太完美了! - R Sun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接