【问题标题】:Split string on sqaure brackets and non brackets在方括号和非括号上拆分字符串
【发布时间】:2019-04-24 19:06:55
【问题描述】:

这是正则表达式问题 我想拆分一个字符串

apple[orange] papya [mango] [grapes]

进入这个数组 ['苹果','[橙子]','木瓜','[芒果]','[葡萄]']

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

【问题讨论】:

标签: javascript regex


【解决方案1】:

你可以试试这个正则表达式:/(\[[^\]]+\])/ 它将匹配左括号任意数量的非右括号和右括号,括号用于捕获拆分中的匹配。

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

trim 用于过滤掉你也可以使用的空白

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

【讨论】:

  • @Arafath 用解释和代码更新了问题,将删除 papya 周围的空格。
猜你喜欢
  • 1970-01-01
  • 2017-08-24
  • 2018-04-14
  • 2013-02-20
  • 2022-12-06
  • 2020-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多