2012-05-05 20 views
5

私はjavascriptの正規表現)

を使用して、最後の()間のテキストを抽出したい例えば

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

結果が

value_b 

おかげでなければなりませんヘルプのため

答えて

8

は、括弧内の部分はキャプチャグループ1に保存され、そのあなたが使用する必要がありますされhere on regexr

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

それを参照してください。この

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

をお試しくださいmatch()[1]にアクセスして結果にアクセスします。

+0

これはおかげさまで多くの.. – user1376366

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

ルックアヘッド(?=[^()]*$)は、入力の最後の前に括弧がないことを示します。

+0

これは私のテキストとブラケットを提供します。 (value_b)..私はo/pを大括弧なしでvalue_bにします。 – user1376366

0

最後の閉じ括弧が常に文末にある場合は、Jonathans answerを使用できます。そうでなければこの仕事かもしれないような何か:

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

効率的なソリューションは、最後の(

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

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

 
console.log(res);

Here is a demo at regex101