考虑一下
$uri = '/post/search/foo';
$pattern = '~/post/search/[A-Za-z0-9_-]+(?=/|$)~i';
$matches = array();
preg_match($pattern, $uri, $matches);
print_r($matches); // Success
[A-Za-z0-9_-]
属于,因此效果很好foo
。由于我正在编写一个路由插件,因此我希望它也能够匹配特殊字符。
我想象一个正则表达式模式是这样的:
[A-Z0-9!@#$%^&*()_+|\/?><~"№;:'*]+(?=/|$)
我试图用斜杠对每个特殊字符进行转义,并preg_quote()
在没有运气的情况下对整个模式进行转义-我总是遇到编译失败。
该问题是,如何进行正确的匹配A-Z0-9!@#$%^&*()_+|\/?><~"№;:'*
应该怎么办?
您是否有不想只使用不满意的理由.
?
如:
'~/post/search/.+(?=/|$)~iU'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句