字符串需要內部paranthesis如何用javascript中的正則表達式替換字符串?
str = Aries (march--something)
我想要去除白羊座(動態文本)以及空間和括號匹配除了內容的一切。
我想:
/([^\(]*)?\(([^\)]*)?\)/
沒有工作。
字符串需要內部paranthesis如何用javascript中的正則表達式替換字符串?
str = Aries (march--something)
我想要去除白羊座(動態文本)以及空間和括號匹配除了內容的一切。
我想:
/([^\(]*)?\(([^\)]*)?\)/
沒有工作。
只要有以下將工作沒有括號的嵌套:
var str = 'Aries (march--something)';
var r = str.replace(/\([^)]*\)/g, '()');
//=> "Aries()"
你試圖匹配排除內部子的模式,但JavaScript的正則表達式實現不真正支持反向引用,這是如何以更強大的語言完成的。
解決此javascript的標準方法是使用字符串對象的替換方法,該方法接受第二個參數,該函數是一個函數。該函數與匹配結果一起被調用,使您能夠根據需要重新組合匹配組。
這裏是你的情況下,代碼:
var str = "Aries (march--something)";
var result = str.replace(/([^\s]+)\s*(\()[^\)]*(\))/, function(match, g1, g2, g3) { return g1+g2+g3; });
顯示你已經遠遠試過如此的愉悅。 – Jerry
當我學習正則表達式時,這個網站對我非常有幫助:http://www.regular-expressions.info/reference.html – Gary
我試過這個[(Aries \()| \)],它可以工作......但白羊座的文本是動態的 – tv4free