Rapidshare URL匹配不正确


Rapidshare URL not matching correctly

当用户通过我的表单提交Rapidshare URL时,我正在努力确保它是有效的。

这是我迄今为止提出的正则表达式:

http://rapidshare.com/files/[0-9]+/[a-zA-Z0-9'._-]+

快速共享链接如下所示:

http://rapidshare.com/files/168501977/some_random-file.zip

我的模式匹配,但不完全正确。例如,如果我们使用这个输入:

http://rapidshare.com/files/168501977/some_random-file.zip£%^$

它仍然会使用PHP函数preg_match()进行匹配,并让它通过,即使URL的末尾有非法符号。我希望模式匹配整个输入,而不仅仅是匹配的随机长度。

任何帮助都将不胜感激,干杯!

您需要锚定正则表达式模式。使用^来锚定开始,使用$来锚定结束。因此,模式变为:

^http://rapidshare.com/files/[0-9]+/[a-zA-Z0-9'._-]+$

这样可以防止字符串的部分匹配,就像生成示例一样。

使用^$验证字符串的开始和结束。示例:
^ht{2}p:'/{2}rapidshare'.com'/files'/'d+'/['.a-zA-Z_-]+$