如何使用as3中的RegEx检测字符串中的链接?

时间:2009-11-16 19:30:15

标签: regex flash actionscript-3 string

我试图在字符串中找到通用链接。我在社区表达式RegExr中找到了一个非常方便的正则表达式:

(https?://)?(www\.)?([a-zA-Z0-9_%]*)\b\.[a-z]{2,4}(\.[a-z]{2})?((/[a-zA-Z0-9_%]*)+)?(\.[a-z]*)?(:\d{1,5})?

我尝试使用它并返回null,尽管在RegExr上测试的相同字符串工作正常:

var linkRegEx:RegExp = new RegExp("(https?://)?(www\.)?([a-zA-Z0-9_%]*)\b\.[a-z]{2,4}(\.[a-z]{2})?((/[a-zA-Z0-9_%]*)+)?(\.[a-z]*)?(:\d{1,5})?","g");
var link:String = 'generic links: www.google.com http://www.google.com  google.com';
trace(linkRegEx.exec(link));//traces null

我有什么遗漏吗?

2 个答案:

答案 0 :(得分:2)

当您使用新的RegExp时,需要加倍反斜杠。你可能想要使用文字语法,这并没有强加这样的要求(假设AS3承认这种语法,我只知道JS。

答案 1 :(得分:0)

看起来你可能正在尝试匹配错误的变量?在linkRegEx.exec(formattedStatus)行中,formattedStatus未定义。