Php Rapidshare URL不正确匹配

Php Rapidshare URL不正确匹配,php,regex,preg-match,Php,Regex,Preg Match,我试图确保当用户通过我的表单提交Rapidshare URL时,它是有效的 这是我到目前为止提出的正则表达式: http://rapidshare.com/files/[0-9]+/[a-zA-Z0-9\._-]+ rapidshare链接如下所示: http://rapidshare.com/files/168501977/some_random-file.zip 我的模式匹配,但不完全正确。例如,如果我们使用此输入: http://rapidshare.com/files/1685019

我试图确保当用户通过我的表单提交Rapidshare URL时,它是有效的

这是我到目前为止提出的正则表达式:

http://rapidshare.com/files/[0-9]+/[a-zA-Z0-9\._-]+
rapidshare链接如下所示:

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-]+$

您不需要转义
//code>?所以
[0-9]+/
将变成
[0-9]+\/