我想寫一個正則表達式的平衡支架結構,如的JavaScript更換爲同樣的結構{... {..} ...}
{...}
,{... {..}...}
和{...{..{..}...}..{..}...}
其中...
指任何文本,它沒有「 {」或 '}' 字符
如果我這樣做:
txt.replace(/\{[\s\S]+?}/g, function(s){return "_"+s+"_";})
第一}
將被視爲結束的比賽,所以 { { } }
將成爲_{ { }_ }
我想正則表達式將其轉換爲_{ { } }_
PS:在function(s)
部分是不是從真正的代碼,只是舉例
PPS:我想用正則表達式,如果能夠做到這一點。
PPPS:的「{」包含在文本括號是有限的,以最高級別的3或4通常
UPDATE: 感謝的意見,讓我們限制嵌套括號的數量爲3。因此:
{ { { .. } .. { .. } } .. { .. } }
如果你知道會有多少個大括號,你可以這樣做。如果不是,正則表達式不能這樣做。 – Gabe 2010-12-06 03:33:18
如果存在帶支撐的字符串,該怎麼辦? – 2010-12-06 03:34:03
根據定義,未知/可變數量的平衡括號通常不足以由正則表達式處理。 :) – deceze 2010-12-06 03:34:37