Парсинг формулы регулярного выражения в javascript - PullRequest
0 голосов
/ 13 апреля 2020

Мне нужно разобрать эту java формулу сценария

Исходная формула:

sum((a+b)*c)+count((a*c)+b)+avg((a-c)/b)+sum((a-c+d)/b)

ожидаемый результат:

a = (a+b)*c
b = (a*c)+b
c = (a-c)/b
d = (a-c+d)/b 

Все, что мы пробовали, находится по ссылке ниже, пожалуйста, проверьте ссылку.

https://regex101.com/r/upnlkA/2/

Любая помощь будет оценена, спасибо заранее .

1 Ответ

0 голосов
/ 13 апреля 2020

Прежде всего, если ожидается, что структура формулы изменится, вы должны , а не использовать регулярное выражение. Если это так, вы должны использовать пакет типа extract-brackets .

Если формула не собирается существенно менять свою структуру, вы можете использовать это регулярное выражение:

/\w{2,}\((.+?)\)(?=(\+\w{2,}|$))/gm

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

Это даст вам следующие группы:

  • (a + b) *c
  • (a *c) + b
  • (a- c) / b
  • (a-c + d) / b

Подробное объяснение вы можете найти по ссылке. Человекочитаемое объяснение состоит в том, что он ищет слова с 2 или более символами \w{2,}, начинает извлекать и останавливается, пока не найдет другое слово с 2 или более символами или концом строки $

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...