URL中的正则表达式

时间:2014-04-01 22:59:10

标签: php regex codeigniter

我有以下代码用于决定与codeigniter一起使用的默认控制器。

if ($_SERVER['HTTP_HOST']=="5409.gs.mycoolurl.org") {

   $route['default_controller'] = 'new-site/newsite'; 
}
else {

   $route['default_controller'] = '';
}

问题在于5409.gs. 5409将是随机的,但总是4位数。如何允许任何4位数字和.gs进入if语句?我试过了:

[0-9].gs.mycoolurl.org但总是得到else方面的东西。

2 个答案:

答案 0 :(得分:2)

if (preg_match("/\d{4}\.gs/", $_SERVER['HTTP_HOST'])) {

$route['default_controller'] = 'new-site/newsite'; 

说明

\d{4} match a digit [0-9]
Quantifier: Exactly 4 times
\. matches the character . literally
gs matches the characters gs literally (case sensitive)

答案 1 :(得分:1)

试试这个:

\d{4}.gs

\ d代表数字

{4}是4

的范围

https://docs.python.org/2/library/re.html