Как сопоставить функции в качестве параметров с RegEx?

1

У меня есть следующий JavaScript RegEx для соответствия функциям, предваряемым theme-.

/(theme-([\w-]+))(?:\s*\(\s*)([^)]+?)(?:\s*\))/gm

Тем не менее, мне также нужно сопоставить другие функции как параметры, такие как theme-foo(param1, theme-bar(arg1)), param3), но этот RegEx не работает, поскольку предполагает, что закрывающие круглые скобки функции вызываемый в параметре - это закрывающие круглые скобки главной функции.

Пример RegEx с проблемой

Как я могу это сделать?

  • 0
    Напишите фактический парсер для целевой грамматики.
  • 0
    Может быть полезно: stackoverflow.com/questions/133601/…
Теги:

1 ответ

0

Как насчет следующих:

let s = 'theme-foo(param1, theme-bar(arg1), param3)';
let regex = /([\w-]+(\(\w+\))?)/g;
let result = [];
s.replace(regex,function(match,param){
    result.push(param);
});
console.log(result);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню