繁体   English   中英

PHP 正则表达式匹配 URL 模式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM