繁体   English   中英

PHP 正则表达式 preg_match 以识别 url 模式

[英]PHP regex preg_match to identify url pattern

有没有办法让规则只允许示例 1 和 3 而不是全部 4?

/^(en\/|)([\d]{1,3})([-])(.+?)([\/])$/

例子:

  1. 12-博客/
  2. 12-博客/blog2/
  3. zh/12-博客/
  4. zh/12-博客/blog2/

https://www.phpliveregex.com/p/tFe

您可以使用en/的可选部分,后跟匹配 1-3 位数字, -并且使用否定字符 class 不匹配/ 1+ 次。

请注意,您可以省略[\d][-][\/]的方括号。 如果您选择与/不同的分隔符,则不必转义正斜杠。

^(?:en/)?\d{1,3}-[^/]+/$

在零件

  • ^字符串开头
  • (?:en/)? 可选匹配en/
  • \d{1,3}匹配 1-3 位数字
  • -从字面上匹配
  • [^/]+/匹配除/之外的任何字符 1+ 次
  • $字符串结尾

正则表达式演示| Php 演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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