Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
匹配url的PHP正则表达式包含url片段_Php_Regex_Url_Url Rewriting - Fatal编程技术网

匹配url的PHP正则表达式包含url片段

匹配url的PHP正则表达式包含url片段,php,regex,url,url-rewriting,Php,Regex,Url,Url Rewriting,我有一个url片段:page/login,我需要知道另一个url片段是否包含它们 这些将匹配: /admin/page/login/ /admin/page/login admin/page/login http://www.dot.com/admin/page/login /admin/page/login?id=10 /admin/page/login/id/10 /admin/page/login/?id=10 /admin/page/login/user?id=10 /admin/pag

我有一个url片段:
page/login
,我需要知道另一个url片段是否包含它们

这些将匹配:

/admin/page/login/
/admin/page/login
admin/page/login
http://www.dot.com/admin/page/login
/admin/page/login?id=10
/admin/page/login/id/10
/admin/page/login/?id=10
/admin/page/login/user?id=10
/admin/page/login/user/?id=10
page/login
page/login/
page/login/id/10
/page/login/id/10
而这些并不是:

/admin/firstpage/login
admin/page/loginOk
/admin/page/loginOk/id/10
mypage/login/id/10
/mypage/login/id/10
mypage/login

我尝试过:
page\/login[\/\s\?]
\/?page\/login[\/\s\?]
没有任何结果

您可以使用单词边界,这样部分匹配就不会匹配

\bpage\/login[\/\s?]
演示:


此外,如果更改分隔符,则无需转义任何正斜杠。

我在结尾添加了一个“?”。因为在regex100中,一些表达式正在工作,因为它以行尾结束。我已经更新了您的演示:这是最后一个表达式:
\bpage\/login[\/\s?]?
很抱歉,但是如果url以
页面/login
您的正则表达式结尾,它将不起作用。如果我在末尾添加
,则匹配像page/loginok这样的URL。?如何添加以片段结尾的url作为选项?可能是
\bpage\/login([\/\s?]\$)
?这意味着URL(不带查询字符串)可以以正斜杠、空格、问号或零结尾。伟大的谢谢你的解释