匹配url的PHP正则表达式包含url片段
我有一个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
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(不带查询字符串)可以以正斜杠、空格、问号或零结尾。伟大的谢谢你的解释