黑马程序员技术交流社区

标题: 正则表达式的问题 [打印本页]

作者: mr_jack    时间: 2014-3-27 15:12
标题: 正则表达式的问题
本帖最后由 mr_jack 于 2014-3-27 16:59 编辑

@"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"      这些字符什么意思呢
作者: threederek    时间: 2014-3-27 15:17
验证电子邮件的正则表达式

  将邮件格式分为两个部分,@前面为用户名,@后面为域名。那么用户名的格式约束为:
    1. 开头和结尾必须由字母(包括大小写)或下划线组成;
    2. 可以包含减号(-),加号(+),点号(.),单引号(‘)

    域名的格式约束为:
    1. 开头和结尾必须由字母(包括大小写)或下划线组成;
    2. 可以包含减号(-),点号(.);
    3. 中间的点号必须出现至少一次
作者: 白夜行    时间: 2014-3-27 16:23
本帖最后由 白夜行 于 2014-3-27 16:30 编辑

"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" 中
前面的 ^ 和后面的 $ 代表字符串的开始和结束,意思是要匹配整个字符串的格式;
\w+  表示可以是一个或多个字母,数字,下划线,+ 表示1个或多个;
([-+.]\w+)*  是一个组, 后面加个 * 意思是前面组中的内容匹配时可以是0个,也可以是多个;
    括号里的内容: [-+.] 匹配一个字符,可以是 - + . 其中的一个;  \w+上面说了;
@  就是匹配它本身;
\w+([-.]\w+)*  这段类似前面的,意思是一个或多个\w,后边的 [-.]\w+ 可有可无 ;
\.  这个是匹配 .

所以整个意思就是,@前面格式:以字母/数字/下换线开头,并且可以用 -+. 分隔;@后面的格式:以字母/数字/下划线开头,可以以-.分隔,不过必须有一个分隔符 .





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2