正确用法是:/,,([,]+)?|^,|,$|\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;

那就行了,这毫无意义。

最佳答案

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

关于php - Preg_match使用数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5873020/

10-10 00:07