[英]PHP Regex to match a URL pattern
我正在尝试在 PHP 中构建一个正则表达式,以便
/test/randomstring1/randomstring2
匹配
/test/randomstring1/randomstring2/
匹配
/test/randomstring1/randomstring2/randomstring3
不匹配
我想出了
/test\/(.+?)\/.*[^\/]/
它适用于前两种情况,但第三种情况也匹配。 有人可以帮我找出我遗漏的东西吗? 谢谢!
请注意.
匹配除换行符以外的任何字符。 .*
将匹配尽可能多的除换行符以外的字符。
您可以使用
preg_match('~^/test/([^/]+)/([^/]+)/?$~', $text, $matches)
查看正则表达式演示
细节
^
- 字符串的开始/test/
- 文字子串([^/]+)
- 第 1 组:除/
之外的任何一个或多个字符/
- 一个/
字符([^/]+)
- 第 2 组:除/
之外的任何一个或多个字符/?
- 一个可选的/
$
- 字符串的结尾。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.