我有一个类似于路径的字符串,但是我尝试了一些应该解析路径的正则表达式模式,但是它们不能正常工作。
这是字符串
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;
答案 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(/[\/|]/);
[\/|]
表示斜杠或竖线。