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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 磊子 中级黑马   /  2015-9-13 22:46  /  704 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

正则表达式:(Pattern)
        概述:符合某种规则的字符串。
        作用:实际开发中,一般使用正则来做校验的。
        校验QQ:
                1、不是是0开头的,
                2、必须是5-15位的数字字符
                [1-9]\\d{4,14}

        String类中的方法:
                public boolean matches(String regex);  //判断字符串是否与给定的正则匹配。

        分类:
                字符类:
                        [abc]  : a,b,c三者中的任意一个
                        [^abc] : 只要不是a,b,c三者中的任何一个就可以
                        [a-zA-Z]:所有的英文字母
                        [0-9] : 所有的数字

                预定义字符类:
                        .  任意字符
                        \d 所有的数字   
                        \w 单词字符(所有的英文字母,数字,下划线) 相当于[a-zA-Z0-9_]

                        \\  表示一个\
                        \\. 表示字符.

                数量词:
                        X? :一次或者一次也没余
                        X* :零次或者多次 (可以是零次,也可以是1次)
                        X+ :一次或多次 (至少一次)
                        X{n} : 恰好n次。
                        X{n,} : 至少n次
                        X{n,m} : 至少n次,至多不超过m次(包括m次)

        功能:
                分割功能:
                        public String[] split(String regex)
                        //张三 lisi 王五
                案例:我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”   
                        思路:
                                1、切割字符串,获取到一个新的字符串数组。
                                2、遍历字符串数组,把每一个遍历到的元素 转换成 int,并将结果存到int数组中。
                                3、排序。(冒泡,选择,sort())
                                4、把排序后的int数组转成字符串。(用StringBuffer,StringBuilder)

                替换功能:
                        public String replaceAll(String regex, String replacement);
                                用给定的字符串replacement 去替换,字符串(谁调用就是谁)中符合正则规则的字符串(regex)。


                分组:
                        怎么分组?
                                通过从左至右计算其开括号的形式类分组,并且对开括号进行编号(编号是从1开始)。
                                示例:
                                        ((A)(B(C)))

                                        组零永远代表整个表达式。
                                        第一组:(A)(B(C))
                                        第二组:A
                                        第三组:B(C)
                                        第四组:C
                        叠词:
                                相同的字符连续出现两次或以上,就是叠词。
                                叠词的切割规则:
                                        (.)\\1+
                                叠词切割,保留一个:
                                        replaceAll("(.)\\1+","$1");
                                切割路径:
                                        示例:
                                                D:\\教案\\14_第十四天\\day14\\video
                                    正则表达式:
                                                \\\\


                思考:请按照叠词切割: “sdqqfgkkkhjppppkl“  (1分钟)

        Patter(模式)和Matcher(匹配器)
                //public boolean matches(String regex);  //判断字符串是否与给定的正则匹配。
                // "akskjflsjdf".matches("正则");
               
                典型的用法:
                        Patter p = Patter.compile("正则");    //获取到正则表达式
                        Matcher m = p.matcher("akskjflsjdf"); //获取匹配器
                        boolean b = m.matches();

                "我的手机号是13161290281,我以前的手机号是1314561232,在之前是12345678920"
                Matcher类中:
                        public boolean find();
                        public String group();

                   //思考:如何把一个字符串中的手机号码获取出来
                    Patter p = Patter.compile("正则");    //获取到正则表达式
                        Matcher m = p.matcher("字符串-"); //获取匹配器
                        while(m.find()){
                          String phone = m.group();
                        }


15 个回复

正序浏览
嗯,感觉用的很少
回复 使用道具 举报
路过,支持一下
回复 使用道具 举报
做的可以
回复 使用道具 举报
a334 中级黑马 2015-9-15 14:25:04
13#
我觉得 正则表达式  通篇了解一下!用的时候再查 就好了
回复 使用道具 举报
路过....。
回复 使用道具 举报
学得好认真啊
回复 使用道具 举报
完全忘记有学过正则
回复 使用道具 举报
赞一个,总结的挺细
回复 使用道具 举报
学习。。。。。。。。。。。。。。。
回复 使用道具 举报
顶一个,可以的
回复 使用道具 举报
少年居然详细如斯
回复 使用道具 举报

嘿嘿 加油
回复 使用道具 举报
鼓掌,不错哦
回复 使用道具 举报
13160123235 来自手机 中级黑马 2015-9-13 23:06:03
藤椅
走过,路过,不错过……
回复 使用道具 举报
路过,支持一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马