我试图用两个分数"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=\frac{2x-21}/{x+12}+{x+3}{x-5}。据我所知,regex引擎捕获{2x-21}/{x+12}+{x+3}作为第一个组,{x-5}作为第二个组。有没有办法用正则表达式得到我想要的结果?
同样的问题也适用于带有几个非嵌套分隔符的其他模式,例如:“我喜欢咖啡(除了拿铁)和茶(包括薄荷茶)”。是否有可能在括号内捕获这两种语句?
如果没有,我可能需要为此编写一个函数(这是可以的,但我想确保这是正确的方法)。
发布于 2014-11-10 09:37:53
({[^}]+})\/({[^}]+})试试this.See demo.Repalce by \\frac$1$2。
http://regex101.com/r/tF5fT5/24
https://stackoverflow.com/questions/26840562
复制相似问题