正确用法是:/,,([,]+)?|^,|,$|\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;
然后它起作用,这没有任何意义。
答案 0 :(得分:4)
preg_match()不接受数组作为参数,只接受字符串。
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
答案 1 :(得分:1)
preg_match接受第一个参数作为字符串,然后传递一个数组。