Regex для получения текста между последними скобками ()

Я хочу извлечь текст между последним() используя JavaScript

Например

<code>var someText="don't extract(value_a) but extract(value_b)";
alert(someText.match(regex));
</code>

Результат должен быть

<code>value_b
</code>

Спасибо за помощь

Ответы на вопрос(4)

/\([^()]+\)(?=[^()]*$)/

(?=[^()]*$), утверждает, что больше нет скобок до конца ввода.

 user137636605 мая 2012 г., 10:36
это дает мне текст и скобку. (value_b) .. Я хочу, чтобы o / p было value_b без скобок ..

вы можете использовать ответ Джонатана. В противном случае что-то вроде этого может работать:

/\((\w+)\)(?:(?!\(\w+\)).)*$/

.* eat up все до последнего(

var str = "don't extract(value_a) but extract(value_b)";

var res = str.match(/.*\(([^)]+)\)/)[1];

console.log(res);

.*\( matches any amount of any character until the last literal ( ([^)]+) captures one or more characters that are not ) [1] grab captures of group 1 (first capturing group). use [\s\S] instead of . dot for multiline strings.

Вот демо на regex101

Решение Вопроса

Попробуй это

\(([^)]*)\)[^(]*$

Видеть этоздесь на регулярном выражении

var someText="don't extract(value_a) but extract(value_b)";
alert(someText.match(/\(([^)]*)\)[^(]*$/)[1]);

Часть внутри скобок хранится в группе захвата 1, для этого вам необходимо использоватьmatch()[1] чтобы получить доступ к результату.

 user137636605 мая 2012 г., 18:44
это работает, спасибо большое ..

Ваш ответ на вопрос