PHP regex preg_match识别网址格式

问题描述 投票:0回答:1

是否有任何方法可以使规则仅允许示例1和3,而不是全部允许4个?

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

例子:

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

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

php regex preg-match
1个回答
1
投票

[您可以为en/使用可选部分,然后使用否定的字符类匹配1-3位数字,-,而不匹配/ 1次以上。

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

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

部分

  • [^字符串的开头
  • [(?:en/)?可选匹配en/
  • \d{1,3}匹配1-3位数字
  • -字面匹配
  • [[^/]+/匹配1个字符以外的任何字符,匹配/之外的字符] >>
  • [$字符串结尾
  • Regex demo | Php demo

© www.soinside.com 2019 - 2024. All rights reserved.