Вопрос по regex, javascript – Regex для получения текста между последними скобками ()

8

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

Например

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

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

value_b

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

Ваш Ответ

4   ответа
6

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

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

это дает мне текст и скобку. (value_b) .. Я хочу, чтобы o / p было value_b без скобок .. user1376366
0

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

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

.* 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

12

Попробуй это

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

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

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

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

это работает, спасибо большое .. user1376366

Похожие вопросы