我正在尝试用字符串替换带有两个分数“x = {2x-21} / {x + 12} + {x + 3} / {x-5}”的字符串 “x = \ frac {2x-21} {x + 12} + \ frac {x + 3} {x-5}”(即从jqMath转换为LaTex)。
为实现这一目标,我编写了以下代码:
var initValue = "(\{.*\}(?=\/))\/(\{.*\})";
var newValue = "\\frac$1$2";
var re = new RegExp (initValue,"g");
var resultString = givenString.replace(re,newValue);
return resultString;
此代码似乎适用于只有一个分数的字符串(例如“x = {2x-21} / {x + 12}”)但是当我尝试将它应用于具有两个分数的示例时,结果是x = \压裂{2X-21} / {X + 12} + {X + 3} {X-5}。据我所知,正则表达式引擎捕获{2x-21} / {x + 12} + {x + 3}作为第一组,{x-5}作为第二组。有没有办法用正则表达式得到我想要的结果?
同样的问题适用于具有多个非嵌套分隔符的其他模式,例如:“我喜欢咖啡(拿铁除外)和茶(包括薄荷茶)”。是否可以在括号中捕获两个语句?
如果没有,我可能必须为此编写一个函数(这没关系,但我想确保这是正确的方法)。
答案 0 :(得分:1)