正则表达式检查字母和一些字符的数量

时间:2015-08-16 05:11:30

标签: regex symfony

我对字符串文本的验证有这些要求

  • 限制为最少4个,最多9个字符
  • 至少需要5个字母,其余可以是数字或字母
  • @和空格将不被接受

我正在使用接受正则表达式的Symfony验证器。 我没有正则表达式的经验所以还没有做任何事情。

如果使用正则表达式无法实现,则打开以实现任何其他方法。

1 个答案:

答案 0 :(得分:1)

您可以尝试下面的正则表达式。

^(?=[0-9A-Za-z]{4,9}$)(?:[0-9A-Za-z]*[A-Za-z]){5}[A-Za-z0-9]*$
  • 限制为最少4个,最多9个字符

    (?=[0-9A-Za-z]{4,9}$)
    
  • 至少需要5个字母,休息可以是数字或字母

    (?:[0-9A-Za-z]*[A-Za-z]){5}[A-Za-z0-9]*$
    

在php中,

preg_match('~^(?=[0-9A-Za-z]{4,9}$)(?:[0-9A-Za-z]*[A-Za-z]){5}[A-Za-z0-9]*$~m', $str);