用逗号分割字符串但忽略括号或引号中的逗号

Sel*_*ron 5 java regex csv string split

我有一个像这样的字符串hello, "darkness, my", (old, friend),我想要这个分割的结果:
hello
"darkness, my"
(old, friend)

我找到了一种忽略 "-marks ( ,?=([^\"]*\"[^\"]*\")*[^\"]*$) 中逗号的方法和另一种忽略括号中逗号的方法 ( ,(?=[^\\)]*(?:\\(|$)))。
当我使用第一个时,我得到:
hello
"darkness, my"
(old
friend)
当我使用第二个时,我得到:
hello
"darkness
my"
(old, friend)

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

Who*_*hat 3

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

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

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