我已阅读ZF2文档zend.mvc.routing,我看到以下示例经常使用: 什么是asterix *和+ sings在以下约束'[0-9] +'和'[a-zA-Z] [a-zA-Z0-9 _-] *'后面做什么?
return array(
'router' => array(
'routes' => array(
'blog' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/blog',
),
'may_terminate' => true,
'child_routes' => array(
'post' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:category/page[/:page]',
'constraints' => array(
'category' => '[a-zA-Z][a-zA-Z0-9_-]*',
'page' => '[0-9]+',
),
),
),
),
),
),
),
)
答案 0 :(得分:4)
它们是正则表达式,您可以在线找到大量关于它的文档。
这两个特定字符具有以下含义:
*
- 量词,意味着它所遵循的令牌可能会出现0次或更多次+
- 与*
相同,但意味着一次或多次 [...]
表达式是字符类。
[0-9]
代表任何一个数字[a-zA-Z]
代表任何一个字母为小写或大写字母的字符您可以在[a-zA-Z0-9_-]
中看到这些字符类,它们可以是字母,数字,下划线或连字符。
您还可以将字符类与量词组合起来:
[0-9]+
表示一个或多个号码[a-zA-Z][a-zA-Z0-9_-]*
表示一个大小写字母,后跟任意数量的字母,数字,_
或-