Preg_match没有返回成功

时间:2013-09-07 11:41:45

标签: php regex match

当我尝试匹配某些用户输入代码时,我总是得到0作为返回值。

$input = $_POST['input'];
$look = '[a-zA-Z]';
preg_match($look,$input);

出于某种原因,我总是得到0作为返回值,为什么?

2 个答案:

答案 0 :(得分:0)

<?php
$input = $_POST['input'];
$look = '/^[a-zA-Z]/';
preg_match($look,$input);
?>

请参阅Manual

答案 1 :(得分:0)

你的正则表达式中存在一些问题:

  1. 正则表达式需要一个分隔符,因此它应该是`/[a-zA-Z]/'
  2. 你可能不只是单个美国英文字母,所以最好使用+修饰符来匹配超过1个字母
  3. 不使用行锚的起点和终点可能会导致问题,并且您的preg_match来电可能会误报。
  4. 结合所有建议,您可以使用此正则表达式:

    $look = '/^[a-zA-Z]+$/';
    

    OR

    $look = '/^[a-z]+$/i';