正则如何获取[]()中的内容

一段文字 如

[aaa](bbb(ASDASD)XSSAXASX)

我想获取的内容是bbb(ASDASD)XSSAXASX

阅读 4.3k
5 个回答
/(?<=\().*(?=\))/

试下这个看看是不是你想要的结果

javascript正则不能做嵌套的匹配,实在要做的话,可以自己写个函数实现,对于你这种情况,使用一个栈机制就可以了

[xxxx](asdasdasd ()asdasdasdasd) 因为是md的格式 给解析了 。。。我要的是asdasdasd ()asdasdasdasd

这问题描述的....别人需要猜你要处理的数据和结果是什么


function nestMatch($str)
{
    let map = {
        'text' : []
        ,'match' : []
    };
    $str.replace(/(\(|\))([^\(\)]*)/g, function($match, $tag, $text){
        let text = '';
        switch($tag)
        {
            case '(':
                map.text.unshift($text);
                break;
            case ')':
                if(map.text.length > 0)
                {
                    text = '(' + map.text.shift() + ')';
                    if(map.text.length <= 0)
                        map.text[0] = '';

                    map.text[0] = map.text[0] + text + $text;
                    map.match.push(text);
                }
                break;
        }

        return $match;
    });

    return map.match;
}
console.log(nestMatch('111(aaa(bbb)ccc)222(ddd(eee)fff(ggg)hhh)333'));

输出 [ "(bbb)", "(aaa(bbb)ccc)", "(eee)", "(ggg)", "(ddd(eee)fff(ggg)hhh)" ]

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题