我需要一个正则表达式(JavaScript)来匹配2,23,并且在下列情况下不包括37。
[B.TARGET.avg(37)]*2 + length(23)
答案 0 :(得分:1)
如果在两者之间匹配外部括号,则需要look ahead,如果没有结束]
var re = /\d+(?:\.\d+)?(?![^[]*?\])/g;
\d+(?:\.\d+)?
匹配一个或多个数字(可选的点数)(?![^[]*?\])
展望未来,如果没有non - 左括号,后面是结束]
正向前瞻选项是检查前方是否只有平衡括号:
var re = /\d+(?:\.\d+)?(?=(?:[^[\]]*\[[^[\]]*\])*[^[\]]*$)/g;
(?=(?:[^[\]]*\[[^[\]]*\])*[^[\]]*$)
展望一定数量的括号。