在Actionscript中使用RegExp进行字符串解析

时间:2010-03-04 16:00:32

标签: regex actionscript

我有一个类似于路径的字符串,但是我尝试了一些应该解析路径的正则表达式模式,但是它们不能正常工作。

这是字符串

  

f|MyApparel/Templates/Events/

我需要斜杠之间的“名称部分”。

我尝试了(\w+),但数组又回来了[0] = "f"[1] = "f"

我在http://www.gskinner.com/RegExr/上测试了模式,它似乎工作正常。

这是AS代码:

var pattern : RegExp = /(\w+)/g;
var hierarchy : Array = pattern.exec(params.category_id);
params.name = hierarchy.pop() as String;

2 个答案:

答案 0 :(得分:2)

pattern.exec()就像在JavaScript中一样。每次找到全局正则表达式匹配时,它都会重置lastIndex属性,下次运行它时会从那里开始。

因此它不返回所有匹配的数组,而只返回字符串中的下一个匹配项。因此,您必须在循环中运行它,直到它返回null

var myPattern:RegExp = /(\w+)/g;  
var str:String = "f|MyApparel/Templates/Events/";

var result:Object = myPattern.exec(str);
while (result != null) {
  trace( result.index, "\t", result);
  result = myPattern.exec(str);
}

答案 1 :(得分:1)

我不知道你想要哪两个斜杠,但尝试

var hierarchy : Array = params.category_id.split(/[\/|]/);

[\/|]表示斜杠或竖线。