我有正則表達式提取圓括號之間的值。正則表達式,括號之間的捕獲,javascript
它的工作大部分時間,但是當它與一個括號結束不
var val = 'STR("ABC(t)")';
var regExp = /\(([^)]+)\)/;.
var matches = regExp.exec(val);
console.log(matches[1]); //"ABC(t"
我要的是"ABC(t)".
任何想法如何,我可以修改我的正則表達式來實現這一目標?
更新 該值總是在括號內。
一些例子:
'ASD("123")'; => '123'
'ASD(123)'; => '123'
'ASD(aa(10)asda(459))'; => 'aa(10)asda(459)'
因此,首先有一些文字(文字總是)。然後是(而且總是以a結尾)。我想要之間的價值。
你躲過了錯誤的收盤')',所以你捕獲組結束,那麼你匹配') '(當它應該是相反的方式)。由於問題是印刷錯誤,因此投票偏離主題。 – Quentin
除非對輸入有特定的限制,否則用正則表達式解決這個問題相當困難。根據輸入中允許的內容以及哪些不允許,只有實際的解析器才能正確執行此操作。 – deceze
在這種情況下應該匹配什麼''一些文本(num(10a)ss)STR(「ABC(t)」)? – RomanPerekhrest