我们在书写PHP正则的时候,正则的修饰定义符通常定义为 / ,而定义为 / 的带来的麻烦是如果正则表达式含中有 / 则需要转义书写为 \/ 这让读正则的人看的比较晕乎。书写也比较烦琐。
为了避免这个情况,可以把正则的修饰定义符定义为 # 。
例子:
代码如下 | 复制代码 |
$uri = 'art/33/44'; preg_match_all('#^art(/\d+)(/\d+)#',$uri,$arr); //等价于下面注释的 //preg_match_all('/^art(\/\d+)(\/\d+)/',$uri,$arr); echo ' '; |
话说CI框架,在路由解析功能上。也是这么干的。CI相关代码如下:
[路由定义文件 application/config/routes.php]
代码如下 | 复制代码 |
$route['default_controller'] = "welcome"; $route['404_override'] = ''; $route['art/(\d+)(/\d*)'] = "test/aaa/$1/"; |
[路由解析类 system/core/Router.php]
代码如下 | 复制代码 |
function _parse_routes() // Loop through the route array looking for wild-cards // Does the RegEx match? return $this->_set_request(explode('/', $val)); // If we got this far it means we didn't encounter a |
这样的话,在CI框架里书写路由规则的时候,如果正则规则里有/,则可以不用转义!
创造与魔法 安卓版v1.0.0750
创造与魔法是一款开放世界手游,在游戏中玩家可探索这个奇妙的世
创造与魔法修改版 最新版v1.0.0750
创造与魔法无限点券版是款探索冒险游戏,该款游戏的操作还是蛮自
战争与文明官方版本 安卓版v1.7.16
战争与文明是一款由上海邮通科技有限公司开发的战争策略游戏,这
迷你世界0元领皮肤无限迷你币版 最新安卓版v1.43.0
迷你世界0元购买皮肤版是这款开放沙盒冒险建造游戏的特殊破解版
创造与魔法无限经验版 安卓版v1.0.0750
创造与魔法无限经验版是款可以改造环境,整个游戏的自由度还是蛮