Kotlin String.split,当分隔符在引号内时忽略

Pep*_*tch 4 string split kotlin

我有一个字符串:

Hi there, "Bananas are, by nature, evil.", Hey there.
Run Code Online (Sandbox Code Playgroud)

我想用逗号作为分隔符分割字符串。如何让 .split 方法忽略引号内的逗号,以便它返回 3 个字符串而不是 5 个。

Mos*_*ius 8

您可以regex在拆分方法中使用

根据此答案,以下正则表达式仅匹配标记,之外"

,(?=(?:[^\"] \"[^\"] \") [^\"] $)

所以试试这个代码:

str.split(",(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*\$)".toRegex())
Run Code Online (Sandbox Code Playgroud)