正则匹配[]外部的内容

背景

客户要求将以下字符串转为数组:

"砷、苯、苯并[a]芘、二苯并[a、h]蒽、五氯苯酚、" ==> [砷, 苯, 苯并[a]芘, 二苯并[a、h]蒽, 五氯苯酚]

正文

刚开始通过匹配、,后来发现有问题,因为[]内的、不能拆解,就被难倒了,网上也没查到。最后求助余大佬解决,发出来以作学习

var reg = /([^、\[]+(\[[^\d]+?\]){0,1}([^、])?)/ig

案例

var abc = "砷、苯、苯并[a]芘、二苯并[a、h]蒽、五氯苯酚、";
var reg = /([^、\[]+(\[[^\d]+?\]){0,1}([^、])?)/ig
abc.match(reg);
// ["砷", "苯", "苯并[a]芘", "二苯并[a、h]蒽", "五氯苯酚"]
posted @ 2021-04-07 16:30  不叫一日闲过  阅读(84)  评论(0编辑  收藏  举报