圆形括号中的PHP正则表达式编号

时间:2011-10-04 19:05:18

标签: 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-match]:分隔符不能是字母数字或反斜杠--filename- -line number->”

我的正则表达式模式是否有问题或者它还有什么问题?

好的,我刚刚改变了

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

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

并弹出同样的错误?

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

您需要为正则表达式提供分隔符:

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

答案 2 :(得分:0)

method signature是:

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

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