難道是更有效地在一根繩子上運行兩個正則表達式搜索:正則表達式,將兩個表達式一起使用反向引用(不過是這有效嗎?)
public static var _isAttrib1:RegExp = /\w+ {0,}= {0,}\'[^']{0,}'/g;
public static var _isAttrib2:RegExp = /\w+ {0,}= {0,}\"[^']{0,}"/g;
或者將這些和使用背一個正則表達式運行參考?他們提到here,但後置引用效率不高。
如果你認爲會有一個好處結合,你會介意給我看怎麼樣?我無法將兩個RegExps結合起來!由於某種原因,這可以解決:
編輯3:注意下面是錯誤的!有關信息,請參閱下面的EDIT3。
var _isAttrib1:RegExp = /\w+ {0,}= {0,}(\'|\")[^']{0,}\1/g;
var arr:Array = _isAttrib1.exec("2222 s='jjj 111'2uuuus='dd' s='' ")
trace(arr) // s='jjj 111','
//but it should only give s='jjj 111' (array should have length 1 not 2).
謝謝!由此推動了一點點便利。
編輯:對不起,有點背景的幫助:
這是在ActionScript AS3(unforunately)。
我想幹淨地從XML轉換爲字符串,並應用一些格式(額外的空間)提取屬性。例如。給出一個c ='2',d ='4',e ='5'的數組。
EDIT2:請注意,有時候包裹「被用來代替包裹」的
EDIT3:下面的工作正常我正是RegExp.exec回報迷惑見here,特別是克(全球)。部分,它是在什麼是返回的第一個元素是什麼匹配
變種R:?!正則表達式=/\ w + * = (['「])((\ 1)| \ 1) \ 1/g;
var str:String =「sdsdsd w ='2322'r = \」fdfd dfdfd dfd \「r =''」;
var result:Object = r.exec(str); (result!= null){trace(result [0])result = r.exec(str); } //瓦特= '2322' // R = 「FDFD dfdfd DFD」 // R = ''
嘗試'\ w + {0,} = {0,}(「|」)。*?{0,} \ 1' –
如果你的字符串中都有一個轉義引號或撇號。例如:「我\」愛\「打破解析」 –
嘗試'/ \ W + * = *(['「])((?!\ 1)。| \\\ 1)* \ 1 /'(另外,這是什麼語言?) – FrankieTheKneeMan