var matches = pattern.match(/\((.+?)\)/g);
符合:
[e[1]]
返回“[e [1]””,我认为这是嵌套问题,如何解决?
最佳答案
如果您只对如何匹配固定定界符内的子字符串感兴趣,则可以使用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>