正则表达式用于检测指定的URL

时间:2011-06-17 11:09:32

标签: php regex preg-match

我想使用preg_match过滤网址,如bartender / profili / 20 /朋友。

正则表达式:

/^\/bartender\/profili\/d+\/friends/

不幸的是它不起作用。

有人可以帮忙吗?

6 个答案:

答案 0 :(得分:3)

你想拍摄\ d +吗?如果是这样,请将它们包含在()中,以便修复它。另外,如果你正则表达式使用/,我建议使用不同的分隔符,减少转义:

<?php
preg_match( 
    '~^/bartender/profili/(\d+)/friends~', 
    '/bartender/profili/20/friends', 
    $matches 
);

var_dump( $matches );

附录:并且 - 就像每个人已经提到过的那样 - 你确实在d +面前忘记了\,但是如果你必须逃避每一个/那那很容易被忽视;)

答案 1 :(得分:2)

你忘了逃避\d+

/^\/bartender\/profili\/\d+\/friends/

答案 2 :(得分:2)

您在d+之前缺少反斜杠:\d+

答案 3 :(得分:2)

d+前面有一个斜杠(并为此情况选择了一个难以读取的分隔符)。试试这个:

#^\/bartender\/profili\/\d+\/friends#

答案 4 :(得分:2)

bartender\/profili\/[0-9]+\/friends”也有效。这是尝试正则表达式的绝佳资源:http://www.regextester.com/

答案 5 :(得分:-1)

你不必转义正斜杠,但你需要转义元字符(如'd'表示十进制数字)

^ /招待/ PROFILI / \ d + /朋友/