A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jiapengtao 中级黑马   /  2016-4-6 22:37  /  2861 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

2黑马币
public static void demo4() {
                //3,Email   fengjia@itcast.cn
                //          fengjia@itcast.com.cn
                String regex = "[\\w-\\.]+@([\\w-]+\\.)+[a-z]{2,3}";
                System.out.println("fengjia@itcast.cn".matches(regex));
                System.out.println("2553868@qq.com".matches(regex));
                System.out.println("fengjia@itcast.cn".matches(regex));
        }
老师写的正则表达式看不懂,除了最后一个加号的代码可以看懂,但运行正确。求大神帮忙解释下,先谢谢。

最佳答案

查看完整内容

[\\w-\\.]+ 表示单词字符- .可以出现一次或者多次 \w表示单词字符,多加的 \为转义\用的 @不用解释了吧 ( )+ 表示组可以出现一次或多次 ( )里面的 [\\w-]+\\. 表示单词字符和- 可以出现一次或多次 然后加上. [a-z]{2.3} 表示小写字母出现两次到3次

3 个回复

正序浏览
1、\w:匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集
2、\W:匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
3、( ):将( 和 ) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用 \1 到\9 的符号来引用。
4、{n,m}:m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。

意思为:(单词字符或".")+"@"+单词字符+"."+(小写字母(a-z)两到三个)
注:单词字符可以是一个或多个字符,数字也可以
回复 使用道具 举报
1、\w:匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集
回复 使用道具 举报
[\\w-\\.]+ 表示单词字符- .可以出现一次或者多次          \w表示单词字符,多加的 \为转义\用的
@不用解释了吧
( )+ 表示组可以出现一次或多次  
( )里面的 [\\w-]+\\.  表示单词字符和- 可以出现一次或多次 然后加上.
[a-z]{2.3} 表示小写字母出现两次到3次  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马