将[a-z0-9] *限制为20个字符?

时间:2011-03-12 23:20:53

标签: php regex

我可以使用正则表达式从[a-z0-9]*获取[a-z0-9]*@example.com部分,但我希望将[a-z0-9]*部分限制为20个字符。是否可以使用正则表达式?

编辑:我改变了主意,我不会使用{0,20},我会使用strlen()。这一个:if (preg_match('/[a-z0-9]*@metu\.edu\.tr/',$_POST['email']) && strlen($_POST['email']) < 35)

2 个答案:

答案 0 :(得分:12)

[a-z0-9]{0,20}@example.com会将其限制为0到20个字符。

答案 1 :(得分:2)

使用此:

[a-z0-9]{0,20}@example.com

或者这个:

[a-z0-9]{1,20}@example.com

据说,最近发现的电子邮件有一个完美的正则表达式(假设你正在尝试做的事情):

/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i

了解更多here