我已经阅读了ZF2文档zend.mvc.route,我看到以下示例经常使用:星号 * 和 + 在以下约束 '[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 次或更多次 -
+
- 与*
相同,但表示 1 次或多次
[...]
表达式是字符类。
-
[0-9]
代表任何一个数字字符 -
[a-zA-Z]
代表任何小写或大写字母的字符
您可以组合这些字符类,如您在[a-zA-Z0-9_-]
中看到的那样,可以是字母、数字、下划线或连字符。
您也可以将字符类与量词组合在一起:
-
[0-9]+
表示一个或多个数字 -
[a-zA-Z][a-zA-Z0-9_-]*
表示一个小写或大写字母,后跟任意数量的字母、数字、_
或-