Разделить строку по точкам, игнорируя контент внутри скобок ()

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

const str = scope.bot.api(https://api.mathjs.org/v4/?expr=2*(7-3));
// ожидаемый input ['scope', 'bot', 'api(https://api.mathjs.org/v4/?expr=2*(7-3))' ]

Так же выражение не должны ломать скобки внутри скобок как тут - "(7-3)'

Заранее большое спасибо за любую помощь :)


Ответы (1 шт):

Автор решения: UModeL

let rExp = /(api\(.+\))$|([a-z]+)(?!=[(])/gim;
let sStr = 'scope.bot.api(https://api.mathjs.org/v4/?expr=2*(7-3))';
console.log(sStr.match(rExp));

→ Ссылка