所以我有这个字符串:
apple;banana;orange, kiwi;onion,strawberry, avocado
以上字符串应拆分为:
apple
banana
orange, kiwi
onion
strawberry
avocado
我找到了一个正则表达式函数,但它只将双引号“”
分开 str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
我试图用替换“”; ;
str.split(",(?=(?:[^\;]*\;[^\;]*\;)*[^\;]*$)");
,但是当我替换为;时,它不起作用
答案 0 :(得分:4)
如果不使用分号,则可以按分号或逗号分隔。
var string = 'apple;banana;orange, kiwi;onion,strawberry, avocado',
array = string.split(/;\s*|,\s*(?!.*;)/);
console.log(array);
答案 1 :(得分:2)
const str = 'apple;banana;orange, kiwi;onion,strawberry, avocado';
console.log(
str
// split at each semicolon
.split(';')
// split at each comma, only for the first and last elements
.map((x,i,arr) => (i==0 || i==arr.length-1) ? x.split(',') : [x])
// merge the arrays
.reduce((acc, cur) => [...acc, ...cur], [])
// trim for clean result
.map(x => x.trim())
)