我发现了很多有关简单拆分的问题,但我的文件类似于 csv 文件,并且某些字符串位于引号之间,并且可能包含逗号。
示例:
myKey,this is a string,"This is yet, another, string"
期望的输出:
["myKey", "this is a string", "This is yet, another, string"]
我发现了一个类似的问题,但我无法正确调整它:
str.split(/([^,"]+|[^,"]*)+/g)[0]
它给了我字符串的第一个字符。我还尝试在第一个括号后面添加 ?:
就像我看到的那样,但这似乎并不重要。
最佳答案
'myKey,this is a string,"This is yet, another, string"'
.split(/,(?=(?:[^"]*"[^"]*")*$)/g);
// ["myKey", "this is a string", "\"This is yet, another, string\""]
这是通过确保逗号前面直到字符串末尾有零个或多个对引号字符来实现的。如果逗号前面有奇数个引号,则不会匹配,因为它应该位于引号内,前提是所有引号都在字符串中闭合。
关于javascript - 如何在 Javascript 中拆分字符串,但如果字符串位于引号之间则不拆分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59804034/