我需要匹配公式中的4 pattern
,如此类型的
_{num}
_num
^{num}
^num
所以我创建了像这样的正则表达式模式
/\_(\d+)|\^(\d{1})|\_\{(\d+)\}|\^\{(\d+)\}/g
这个正则表达式演示工作完美匹配,但适用于javascript代码无法正常工作
var int_reg =/\_(\d+)|\^(\d{1})|\_\{(\d+)\}|\^\{(\d+)\}/g;
var str = int_reg.exec('\int_5^{3}100x-100=10');
console.log(str)
请告诉我这是什么问题?。并以我的目标更正我的代码
感谢的
答案 0 :(得分:1)
它工作正常,但你得到的数组是一个匹配操作的一系列捕获(例如()
中匹配的东西)。要进一步匹配,您需要再次调用exec
,如下所示:
var int_reg =/\_(\d+)|\^(\d{1})|\_\{(\d+)\}|\^\{(\d+)\}/g;
var str = '\int_5^{3}100x-100=10';
console.log(int_reg.exec(str))
console.log(int_reg.exec(str))
console.log(int_reg.exec(str))
修改以解决您的其他问题(即使问题已经结束):
var int_reg =/\_\d+|\^\d|\_\{\d+\}|\^\{\d+\}/g;
var str = '\int_5^{3}100x-100=10';
console.log(str.match(int_reg).map(s => Number((/\d+/.exec(s))[0])))