PHP:完全匹配的正则表达式

时间:2012-02-22 19:22:27

标签: php regex pattern-matching

这是我目前拥有的正则表达式(哪种作品):

$regex = '/[\w ]{7,30}/';

我的修订看起来像我想要的,但根本不起作用:

$regex = '^[\w ]{7,30}$';

以下是我使用正则表达式的方法:

public function isValid( $value )
{

    $regex = '/^[\w ]{7,30}$/';
    return preg_match( $regex, $value ) ? true : false;

}

我正在尝试匹配以下内容:

  • 任何大写/小写字母
  • 任何数字
  • 可以包含空格
  • 不能包含换行符或制表符空间
  • 最少7个字符
  • 最多30个字符

有效输入:

  • 测试
  • 测试
  • Test123
  • 测试123
  • 测试___

输入无效:

  • 测试#
  • Testin8 +
  • Tester1&安培;

第一个正则表达式将匹配所有有效输入,并且无效(只要前四个字符有效,它就不关心其余的)。第二个正则表达式没有任何匹配。

4 个答案:

答案 0 :(得分:2)

尝试将两者结合起来:

$regex = '/^[\w ]{7,30}$/';

答案 1 :(得分:0)

不要忘记你的分隔符:

/^[\w ]{7,30}$/

答案 2 :(得分:0)

您在开头和结尾错过了/

$regex = '/^[\w ]{7,30}$/';

答案 3 :(得分:0)

'/^[\w ]{7,30}$/'

你错过了分隔符。