在方括号和非括号上分割字符串

Ara*_*ath 1 javascript regex

这是我要拆分字符串的正则表达式问题

apple[orange] papya [mango] [grapes]
Run Code Online (Sandbox Code Playgroud)

放入此数组['apple','[orange]','papaya','[mango]','[grapes]']

我已经尝试过了, "apple[orange] papya [mango] [grapes]".match(/[^[\]]+(?=])/g) 但是它只返回括号内的内容

jcu*_*bic 5

您可以尝试使用此正则表达式:/(\[[^\]]+\])/它将匹配任意数量的不闭合闸刀和闭合括号的开括号,括号用于捕获拆分中的匹配项。

var input = 'apple[orange] papya [mango] [grapes]';
console.log(input.split(/(\[[^\]]+\])/).filter(s => s.trim()));
Run Code Online (Sandbox Code Playgroud)

修剪用于滤除空白,您也可以使用

var input = 'apple[orange] papya [mango] [grapes]';
var words = input.split(/(\[[^\]]+\])/).map(s => s.trim()).filter(Boolean);
console.log(words);
Run Code Online (Sandbox Code Playgroud)