var matches = pattern.match(/\((.+?)\)/g);
匹配:
[e[1]]
返回“[e [1]”,我认为它是嵌套问题,我该如何解决?
答案 0 :(得分:2)
如果您只对如何匹配固定分隔符中的子字符串感兴趣,可以使用XRegExp
XRegExp.matchRecursive
:
返回最左侧和右侧分隔符之间的匹配字符串数组,或具有详细匹配部分和位置数据的对象数组。如果数据中的分隔符不平衡,则会引发错误。
由于分隔符已丢失,但您知道它们是什么,您可以在以后的所有匹配中恢复它们。
var str = '[e[1]] [ [e[[2]34]]]';
document.body.innerHTML = XRegExp.matchRecursive(str, '\\[', ']', 'g').map(x => '[' + x + ']');
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-all-min.js"></script>