|
| » 首页 » 电脑_数码 » 编程 » PHP中,按这个要求,这个正则表达式对吗? |
PHP中,按这个要求,这个正则表达式对吗? |
|
要求:假定 Web 站点要求每个用户创建一个登录名。每个用户名至少要包含 3 个但不多于 10 个字母数字字符,并且必须以字母为开头。 语言环境:PHP 这个正则表达式对吗,能帮我分析下错在哪里? |
![]() |
|
|
表示这样的字符串:以字母或者是以'('或者')'或者'|'开头接下来是2~9个单词字符。 应该是字符组出现了问题,在字符组里所有出现的字符都是并列关系所以就不需要'|'这个字符表示并列了。而且\w不需要在字符组里就可以表达单词字符的意思,在有的环境里[\w]表示字符'\'或者'w'。 可以改成: ^[a-zA-Z]\w{2,9}$ 或者: ^([a-z]|[A-Z])\w{2,9}$ 第一种效率高些。 表示这样的字符串:以字母或者是以'('或者')'或者'|'开头接下来是2~9个单词字符。 应该是字符组出现了问题,在字符组里所有出现的字符都是并列关系所以就不需要'|'这个字符表示并列了。而且\w不需要在字符组里就可以表达单词字符的意思,在有的环境里[\w]表示字符'\'或者'w'。 可以改成: ^[a-zA-Z]\w{2,9}$ 或者: ^([a-z]|[A-Z])\w{2,9}$ 第一种效率高些。 |
| 《PHP中,按这个要求,这个正则表达式对吗?》答案收集时间:2008-06-14 14:32:02 |