Actionscript中使用RegExp进行字符串解析
我有一个类似于路径的字符串,但我尝试了一些应该解析路径的正则表达式模式,但它们不太管用 这是绳子Actionscript中使用RegExp进行字符串解析,regex,actionscript,Regex,Actionscript,我有一个类似于路径的字符串,但我尝试了一些应该解析路径的正则表达式模式,但它们不太管用 这是绳子 f|MyApparel/Templates/Events/ 我需要斜线之间的“名称部分” 我尝试了(\w+),但数组返回[0]=“f”和[1]=“f” 我在上测试了该模式,它似乎工作正常 以下是AS代码: var pattern : RegExp = /(\w+)/g; var hierarchy : Array = pattern.exec(params.category_id); params.
f|MyApparel/Templates/Events/
我需要斜线之间的“名称部分”
我尝试了(\w+
),但数组返回[0]=“f”
和[1]=“f”
我在上测试了该模式,它似乎工作正常
以下是AS代码:
var pattern : RegExp = /(\w+)/g;
var hierarchy : Array = pattern.exec(params.category_id);
params.name = hierarchy.pop() as String;
我不知道你想要哪两条斜线,但试试看
var hierarchy : Array = params.category_id.split(/[\/|]/);
[\/|]
表示斜线或竖线 我不知道你想要哪两条斜线,但试试看
var hierarchy : Array = params.category_id.split(/[\/|]/);
[\/|]
表示斜线或竖线 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);
}
pattern.exec()。每次找到全局正则表达式的匹配项时,它都会重置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-纠正必须循环的错误。但是,我想补充一点,使用split而不是RegExp更好地解决这个问题。使用split()。问题中普遍存在的误解是关于pattern.exec()
是如何工作的,这正是我想要纠正的。+1-纠正关于必须循环的错误。但是,我想补充一点,使用split而不是RegExp更好地解决这个问题。使用split()。问题中普遍存在的误解是关于pattern.exec()
是如何工作的,这正是我想要纠正的。+1。虽然@Tomalak回答了OPs关于使用RegExp的问题,但我认为这是一个更好的解决方案。。。实际上仍然使用RegExp.)+1.虽然@Tomalak回答了OPs关于使用RegExp的问题,但我认为这是一个更好的解决方案。。。实际上仍然使用RegExp.)