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

时间:2010-09-29 04:39:45

标签: php regex

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

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

以下是我目前正在使用的内容。

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

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

2 个答案:

答案 0 :(得分:5)

你想:

^[A-Za-z]([A-Za-z]{2}|[A-Za-z][0-9]|[0-9]{2})[0-9]{0,6}$

初始[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.

答案 1 :(得分:0)

试试这个:

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

这将为您提供1至3个字母和3至9个字符。