正则表达式匹配编号

时间:2016-01-31 23:29:35

标签: regex

我需要一个正则表达式(JavaScript)来匹配2,23,并且在下列情况下不包括37。

[B.TARGET.avg(37)]*2 + length(23)

1 个答案:

答案 0 :(得分:1)

如果在两者之间匹配外部括号,则需要look ahead,如果没有结束]

var re = /\d+(?:\.\d+)?(?![^[]*?\])/g; 
  • \d+(?:\.\d+)?匹配一个或多个数字(可选的点数)
  • (?![^[]*?\])展望未来,如果没有non - 左括号,后面是结束]

See demo at regex101

正向前瞻选项是检查前方是否只有平衡括号:

var re = /\d+(?:\.\d+)?(?=(?:[^[\]]*\[[^[\]]*\])*[^[\]]*$)/g; 

(?=(?:[^[\]]*\[[^[\]]*\])*[^[\]]*$)展望一定数量的括号。

See demo at regex101