正则表达式有助于匹配多个字母

tom*_*tom 1 php regex

我使用以下正则表达式来匹配帐号.当我们最初把这个正则表达式放在一起时,规则是一个帐号只能以一个字母开头.这已经改变了,我有一个帐号,在字符串的开头有3个字母.

我希望有一个正则表达式,在字符串的开头匹配至少1个字母和最多3个字母.最后一个问题是字符串的长度.它可以长达9个字符,最少3个字符.

这是我目前正在使用的.

'/^([A-Za-z]{1})([0-9]{7})$/'

有没有办法匹配所有这些?

pax*_*blo 5

你要:

^[A-Za-z]([A-Za-z]{2}|[A-Za-z][0-9]|[0-9]{2})[0-9]{0,6}$
Run Code Online (Sandbox Code Playgroud)

初始[A-Za-z]确保它以字母开头,第二位([A-Za-z]{2}|[A-Za-z][0-9]|[0-9]{2})确保它至少有三个字符长,并且在开始时由一到三个字母组成,最后一位[0-9]{0,6}允许最多总共9个字符.

进一步解释:

^                    Start of string/line anchor.
[A-Za-z]             First character must be alpha.
( [A-Za-z]{2}        Second/third character are either alpha/alpha,
 |[A-Za-z][0-9]       alpha/digit,
 |[0-9]{2}            or digit/digit
)                      (also guarantees minimum length of three).
[0-9]{0,6}           Then up to six digits (to give length of 3 thru 9).
$                    End of string/line marker.
Run Code Online (Sandbox Code Playgroud)