繁体   English   中英

Javascript Regex匹配表达式内部的表达式? (和\\(。*?\\))

[英]Javascript Regex match expression inside expression? (SUM\(.*?\))

我正在尝试构建一个正则表达式来解析excel表达式,这很简单:

SUM(1;2;SUM(999);SUM(3;4);SUM(9))

正则表达式应该与所有SUM函数匹配,因此我以后可以解析它们。 到目前为止,这就是我所拥有的

(SUM\(.*?\))

但是它与SUM(999)不匹配,仅与其他SUM函数不匹配。 我对正则表达式相当陌生,所以我不知道自己在做什么错。 有谁能够帮助我?

谢谢!

https://regex101.com/r/ge6TTJ/1/

SUM\\([0-9\\;]+\\)? 此正则表达式将向您显示每个SUM表达式,而无需将其括起来。

码:

let data = "SUM(1;2;SUM(999);SUM(3;4);SUM(9))";
let match = data.match(/SUM\([0-9\;]+\)?/gm)

结果:

["SUM(1;2;", "SUM(999)", "SUM(3;4)", "SUM(9)"]

如果您想完全填充封闭的括号,可以执行以下操作:

let data = "SUM(1;2;SUM(999);SUM(3;4);SUM(9))";
let match = data.match(/SUM\([0-9\;]+\)?/gm).map(r => r.slice(-1) === ")" ? r : r.concat(")"))

结果:

["SUM(1;2;)", "SUM(999)", "SUM(3;4)", "SUM(9)"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM