PHP 5.6.10 - preg_match():编译失败:偏移量 100 处的字符 class 中的范围无效
PHP 5.6.10 - preg_match(): Compilation failed: invalid range in character class at offset 100
我遵循在 ZendFrame 工作路由中配置的正则表达式
'constraints' => array(
'controller' => '[a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'dashname' => '[a-zA-Z0-9_-\s]*',
'formatter' => '[a-zA-Z]*'
)
抛出错误
警告:preg_match():编译失败:字符 class 中的无效范围位于 app\vendor\zendframework\zendframework\library\Zend\Mvc\Router\Http\Segment.[=34 中的偏移量 100 =] 线上 370
问题似乎出在 'dashname' => '[a-zA-Z0-9_-\s]*',
相同的代码在 PHP 5.4 版本中有效,但在 PHP5.6 版本中无效,感谢任何帮助。
在class中-
是一个范围运算符,你需要用\
来转义它
[a-zA-Z0-9_\-\s]
我遵循在 ZendFrame 工作路由中配置的正则表达式
'constraints' => array(
'controller' => '[a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'dashname' => '[a-zA-Z0-9_-\s]*',
'formatter' => '[a-zA-Z]*'
)
抛出错误
警告:preg_match():编译失败:字符 class 中的无效范围位于 app\vendor\zendframework\zendframework\library\Zend\Mvc\Router\Http\Segment.[=34 中的偏移量 100 =] 线上 370
问题似乎出在 'dashname' => '[a-zA-Z0-9_-\s]*',
相同的代码在 PHP 5.4 版本中有效,但在 PHP5.6 版本中无效,感谢任何帮助。
在class中-
是一个范围运算符,你需要用\
[a-zA-Z0-9_\-\s]