Preg_match使用数组?

时间:2011-05-03 17:02:27

标签: php mysql regex preg-match

正确用法是:/,,([,]+)?|^,|,$|\b,\b|\s,/

$comma[0] = '/,,([,]+)?/';  
            $comma[1] = '/^,/';     
            $comma[2] = '/,$/';
            $comma[3] = '/\b,\b/';  
            $comma[4] = '/\s,/';    

$analyst = preg_match($comma, $_POST['analyst']) 
    ? mysql_real_escape_string($_POST['analyst']) : NULL;

我正在尝试从用户输入中检测逗号,每个正则表达式都已正确定义,但我不明白为什么它没有将它们传递给if语句。

编辑:

如果我改变了这个:

$analyst = preg_match('test', $_POST['analyst']) 
    ? mysql_real_escape_string($_POST['analyst']) : NULL;

然后它起作用,这没有任何意义。

2 个答案:

答案 0 :(得分:4)

preg_match()不接受数组作为参数,只接受字符串。

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

http://php.net/manual/en/function.preg-match.php

答案 1 :(得分:1)

preg_match接受第一个参数作为字符串,然后传递一个数组。