Regex математика с идеальными концевыми скобками
Это моя строка
{10
{-55
{{55x}{55}*55}
{2}{5}
}{10}
}
{55}
Мне нужно изменить {a}{b}
в (a/b)
Но они содержат больше нет }
мне нужно соответствовать уважаемым скобкам
как ниже:
(10
((-55(55x/55)*55))
/(2/5)
/10)
/55)
отрывок
var a = '{10{-55{{55x}{55}*55}{2}{5} }{10}}{55}';
console.log(a.replace(/{(.*)}{(.*)}(?!.*\1)/g, "($1/$2)"))
Я не хорошо в регулярных выражениях может кто-нибудь помочь мне..
1 ответ
Вы можете попробовать что-то вроде этого:
- Заменить все
}{
от/
- Затем заменить все
{
от(
а также}
от)
var a = '{10{-55{{55x}{55}*55}{2}{5} }{10}}{55}';
var b = a.replace(/}{/g, "/");
b = b.replace(/{/g, "(");
b = b.replace(/}/g, ")");
console.log(b)
Предостережение
Как отметил @ Darren Sweeney, результат не совсем тот же, но в моем понимании это опечатка. Если вы обратите внимание, {10{-55
должен быть проанализирован (10(-55
и не (10((55
, Также эта дополнительная открывающаяся скобка (
делает уравнение неуравновешенным.
Input: '{10{-55{{55x}{55}*55}{2}{5} }{10}}{55}'
Output: (10((55-(55x/55)*55))/(2/5)/10)/55)
// ^