当有多个http URL时,使用正则表达式获取http URL

时间:2013-01-22 08:20:47

标签: javascript regex

我想从项目的不同站点提取不同的.swf文件。不同的网站使用不同的源方法,因此我无法在我的正则表达式中使用src=data=

我能够将文件名与/[\w-]+.swf/g匹配,但是当我尝试匹配从http开始的完整路径(http(.*?).swf)时,它匹配路径之前的另一个http(第一个在路径中)代码)。此外,我无法使用src=data=等,它必须只是链接。

基本上,有没有办法将匹配限制在向后搜索时找到的第一个http?

如果有人关心,那么这里的代码是http://pastebin.com/kT20UqqJ。 这是测试正则表达式的好地方:http://regex.larsolavtorvik.com/

2 个答案:

答案 0 :(得分:1)

尝试以下方法:

var regex = /http:[\.\/\w-%]+\.swf/g

您需要转义.否则它将匹配任意字符和/,因为它是表达式分隔符。

您可以在此处看到 working Example

答案 1 :(得分:-1)

如果你有网址编码字符(如空格),你的网址中也会有一个%

以下是一个适用于此案例的示例:/http:[\./\w%-]+\.swf/g

这是一个可以测试正则表达式的工具:http://regexpal.com/

您可以在其中检查其效果:http://regexter.com/