我想从项目的不同站点提取不同的.swf文件。不同的网站使用不同的源方法,因此我无法在我的正则表达式中使用src=
或data=
。
我能够将文件名与/[\w-]+.swf/g
匹配,但是当我尝试匹配从http开始的完整路径(http(.*?).swf
)时,它匹配路径之前的另一个http(第一个在路径中)代码)。此外,我无法使用src=
或data=
等,它必须只是链接。
基本上,有没有办法将匹配限制在向后搜索时找到的第一个http?
如果有人关心,那么这里的代码是http://pastebin.com/kT20UqqJ。 这是测试正则表达式的好地方:http://regex.larsolavtorvik.com/
答案 0 :(得分:1)
尝试以下方法:
var regex = /http:[\.\/\w-%]+\.swf/g
您需要转义.
否则它将匹配任意字符和/
,因为它是表达式分隔符。
您可以在此处看到 working Example 。
答案 1 :(得分:-1)
如果你有网址编码字符(如空格),你的网址中也会有一个%
。
以下是一个适用于此案例的示例:/http:[\./\w%-]+\.swf/g
这是一个可以测试正则表达式的工具:http://regexpal.com/
您可以在其中检查其效果:http://regexter.com/