对字符串运行两次正则表达式搜索是否更有效:
public static var _isAttrib1:RegExp = /\w+ {0,}= {0,}\'[^']{0,}'/g;
public static var _isAttrib2:RegExp = /\w+ {0,}= {0,}\"[^']{0,}"/g;
或者组合这些并使用反向引用运行单个RegExp?他们提到here但反向引用效率不高。
如果您认为合并会有好处,您介意给我看看怎么样?我只是无法将两个RegExps结合起来!由于某种原因,这会破坏:
EDIT3:以下是错误!有关信息,请参阅下面的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).
谢谢!由此带动了一点便盆。
编辑:对不起,有点背景帮助:
这是在动作脚本AS3(不幸的是)。
我正在尝试从转换为String的XML中干净地提取attrib,并应用了一些格式(额外的空格)。例如。给出一个c ='2',d ='4',e ='5'的数组。
Edit2:请注意,有时会使用“使用而不是包围”。
编辑3:以下工作正常。我确切地想知道RegExp.exec返回的是什么。请参阅here,特别是g(全局)部分,它是返回内容的第一个元素是匹配的内容。
var r:RegExp = / \ w + * = (['“])((?!\ 1)。| \\ 1) \ 1 / g;
var str:String =“sdsdsd w ='2322'r = \”fdfd dfdfd dfd \“r =''”;
var result:Object = r.exec(str);
while(result!= null){trace(result [0])result = r.exec(str); } // w ='2322' // r =“fdfd dfdfd dfd” // r =''
答案 0 :(得分:1)
答案 1 :(得分:0)
我建议你使用这个很棒的工具。它有一个图书馆,描述,实时突出显示和更多。它是用闪光灯制作的,所以你知道配方符合你想要的。