2011-10-04 119 views
0

我只想从字符串中获取数字,其中数字包含在圆括号中。圆形括号内的PHP正则表达式编号

我有以下代码:

$type_raw = $row['Type']; 
    $length_pattern = '^\(\d+\)$'; 

    preg_match($type_raw,$length_pattern,$match,PREG_OFFSET_CAPTURE); 
    $length = $match[0]; 

PHP给我以下错误:

“警告:的preg_match()[function.preg匹配]:定界符不能是字母数字或反斜线“ - 文件名 - 行号 - >”

我的正则表达式模式有什么问题,或者它可能是什么?

好吧,我只是改变了

$length_pattern = '^\(\d+\)$'; 

$length_pattern = '/^\(\d+\)$/'; 

和相同的错误弹出?

回答

3

PHP.net

int preg_match (string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]]) 

那么你的将是:

$length_pattern = '/^\(\d+\)$/'; // with a delimiter "/" 

preg_match($length_pattern,$type_raw,$matches,PREG_OFFSET_CAPTURE); 
+0

哦叹一口气,我一定是缺乏医疗......这个作品,谢谢。 – FinalFortune

1

您需要为您的正则表达式提供了一个分隔符:

$length_pattern = '/^\(\d+\)$/'; 
0

method signature是:

int preg_match (string $pattern , 
       string $subject 
       [, array &$matches 
       [, int $flags = 0 
       [, int $offset = 0 ]]]) 

因此,您需要反转您的订单,并为您的正则表达式提供分隔符,例如/^\(\d+\)$/

相关问题