2015-06-05 4 views
0

Я попыталсяRegex для захвата строки внутри скобок

[^\(]\(.*\) 

, но в строке, как

Tamara(PER) Jorquiera 

Шаблон возвращает

a(PER) 

Как я могу получить только текст внутри скобок , предполагая, что открытая и закрывающая скобки встречаются один раз?

ответ

0

Используйте следующее регулярные выражения:

\(([^)]*?)\) 

Demo

Обратите внимание, что вам не нужно [^\(] из стороны скобки просто использовать [^)]*? в захвате группы.

[^)]*? - это не жадное регулярное выражение, которое соответствует чему угодно, кроме закрывающей круглой скобки.

1

[^\(]\(.*\)

Это соответствует любому символу, который не ( (a в данном примере) .. и буквальным ( тогда все до )

Вы можете использовать следующее:

\([^)]*\)   // this will match only the text between parentheses 
        // including parantheses 

Если вы хотите, чтобы только текст использовал lookahead, D: просмотр назад

(?<=\()[^)]*(?=\)) 

См DEMO

Смежные вопросы