java - 用逗号拆分字符串,但忽略括号或引号中的逗号

标签 java regex string csv split

我有一个像 hello, "darkness, my", (old, friend) 这样的字符串,我想要这个拆分结果:
你好
“黑暗,我的”
(老 friend )

我找到了一种方法来忽略 "-marks (,?=([^\"]*\"[^\"]*\")*[^\"]*$) 和另一种忽略括号中逗号的方法 (,(?=[^\\)]*(?:\\(|$))).
当我使用第一个时,我得到:
你好
“黑暗,我的”
(旧
friend )
当我使用第二个时,我得到:
你好
“黑暗”
我的”
(老 friend )

但是我该如何结合这两种解决方案呢?

最佳答案

可能更容易匹配部分,而不是拆分它们。

\s*("[^"]*"|\([^)]*\)|[^,]+)

这会将每条数据捕获为第 1 组。

关于java - 用逗号拆分字符串,但忽略括号或引号中的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40770990/

相关文章:

java - 如何使字符串的字节大小相同

java - 如何获取另一个fragment中EditText中TimePickerDialog的时间?

java - 没有注册仪器,运行单元测试时出错

java - java转xml和java转json jar的命名约定解释

java - 使用 sed/awk/whatever 从 *nix 上的日志中获取异常

C# 正则表达式需要帮助

python - 按可变长度在python中格式化

java - 如何像在 Ruby 中那样用 Java 计算毫秒?

regex - 如何使用 sed 将 u'sometext' 替换为 'sometext'

iOS Swift - 如何匹配另一个字符串为 "like"的字符串?即 "http"就像 "http://"