Php 正则表达式匹配/admin/not-administrator

Php 正则表达式匹配/admin/not-administrator,php,regex,Php,Regex,您好,我想匹配字符串,如/admin/或/admin/something或/admin,但不匹配/administration或/administrator。我写了这个正则表达式: $pattern = '%^/admin(/|/[a-zA-Z0-9_-]{1,})?$%' 它是有效的,但它是丑陋的。我想知道它能写得更清晰易懂吗?这个正则表达式应该适合您: $pattern = '%^/admin(/[\w-]*)?$%' 这将匹配以下任何一项: /管理员 /管理员/ /行政/食物栏 正则

您好,我想匹配字符串,如
/admin/
/admin/something
/admin
,但不匹配
/administration
/administrator
。我写了这个正则表达式:

$pattern = '%^/admin(/|/[a-zA-Z0-9_-]{1,})?$%'

它是有效的,但它是丑陋的。我想知道它能写得更清晰易懂吗?

这个正则表达式应该适合您:

$pattern = '%^/admin(/[\w-]*)?$%'
这将匹配以下任何一项:

  • /管理员
  • /管理员/
  • /行政/食物栏

正则表达式是“丑陋的”。除非你不用正则表达式。应该注意的是,
[a-zA-Z0-9.-]
@anubhava非常感谢,这真的很好,我会在3分钟内接受:)@Sinomai:是的,但我不确定OP是什么意思,所以我保留了dot。@Sinomai我应该用
[a-zA-Z0-9.-]替换
@user3061142:答案已更新<代码>[a-zA-Z0-9_-]可缩写为
[\w-]