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

Regex 正则表达式检查字母数和一些字符,regex,symfony,Regex,Symfony,我对字符串文本的验证有以下要求 最多4个字符,最多9个字符 至少需要5个字母,其余可以是数字或字母 @空间将不被接受 我正在使用接受正则表达式的Symfony验证器。 我没有使用regex的经验,所以还没有做任何事情 打开以实现任何其他方法(如果无法使用正则表达式)。您可以尝试下面的正则表达式 ^(?=[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}$)

我对字符串文本的验证有以下要求

  • 最多4个字符,最多9个字符
  • 至少需要5个字母,其余可以是数字或字母
  • @空间将不被接受
我正在使用接受正则表达式的Symfony验证器。 我没有使用regex的经验,所以还没有做任何事情


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

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

^(?=[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);

出现此错误-警告:preg_match():无结尾分隔符“^”foundThis--用于检查正则表达式。