嗨,纔有可能正確地劃分功能屬性,使用正則表達式? 我想,在分割一個逗號分隔列表中的所有屬性的表達。但是屬性本身可能是一個數組或對象或東西,也可以包含逗號:劃分功能屬性
例如:
'string1','string2',sum(1,5,8), ["item1","item2","item3"], "string3" , {a:"text",b:"text2"}
這應該被分割爲:
'string1'
'string2'
sum(1,5,8)
["item1","item2","item3"]
"string3"
{a:"text",b:"text2"}
這樣的表達應該分頭所有逗號,但不包含由(),{}或[]包圍的逗號。
我試圖這樣在AS3 BTW 這裏是一些代碼,將拆分所有的逗號(這是ofcourse不是我想要的):
var attr:String = "'string1','string2',sum(1,5,8), ['item1','item2','item3'], 'string3' , {a:'text',b:'text2'}";
var result:Array = attr.match(/([^,]+),/g);
trace(attr);
for(var a:int=0;a<result.length;a++){
trace(a,result[a]);
}
這裏是允許嵌套圓括號的表達式,但不是別人......
/([^,]+\([^\)]+\)|[^,]+),*/g
如果你想允許*嵌套*括號,括號或中括號,那麼這相當於解析HTML/XML與正則表達式只是,你正在使用錯誤的工具。 – 2009-11-21 21:00:09
你是什麼意思錯誤的工具? 我應該使用什麼工具? 不正則表達式呢? – Aaike
正則表達式不足以支持嵌套。您需要更強大的代表下推自動機的東西。 – Suppressingfire