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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1:正则表达式(理解)
        (1)就是符合一定规则的字符串
        (2)常见规则
                A:字符
                        x 字符 x。举例:'a'表示字符a
                        \\ 反斜线字符。
                        \n 新行(换行)符 ('\u000A')
                        \r 回车符 ('\u000D')
                       
                B:字符类
                        [abc] a、b 或 c(简单类)
                        [^abc] 任何字符,除了 a、b 或 c(否定)
                        [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
                        [0-9] 0到9的字符都包括
                       
                C:预定义字符类
                        . 任何字符。我的就是.字符本身,怎么表示呢? \.
                        \d 数字:[0-9]
                        \w 单词字符:[a-zA-Z_0-9]
                                在正则表达式里面组成单词的东西必须有这些东西组成

                D:边界匹配器
                        ^ 行的开头
                        $ 行的结尾
                        \b 单词边界
                                就是不是单词字符的地方。
                                举例:hello world?haha;xixi
                       
                E:Greedy 数量词
                        X? X,一次或一次也没有
                        X* X,零次或多次
                        X+ X,一次或多次
                        X{n} X,恰好 n 次
                        X{n,} X,至少 n 次
                        X{n,m} X,至少 n 次,但是不超过 m 次
        (3)常见功能:(分别用的是谁呢?)
                A:判断功能
                        String类的public boolean matches(String regex)
                        例:String str="123456";    str.matches(regex);
                B:分割功能
                        String类的public String[] split(String regex)
                C:替换功能
                        String类的public String replaceAll(String regex,String replacement)
                D:获取功能
                        Pattern和Matcher
                        //需求:获取字符串中由三个字母组成的单词
                                public static void main(String[] args) {
                                        //定义字符串和规则
                                        String s="da jia hao wo shi xiao shi tou";
                                        String regex="\\b\\w{3}\\b";
                                       
                                        //把规则编译成模式对象。
                                        Pattern p=Pattern.compile(regex);
                                        //通过模式对象得到匹配器对象
                                        Matcher m=p.matcher(s);
                                       
                                        while(m.find()){
                                                System.out.println(m.group());
                                        }
                                }
                               
                                find():查找存不存在
                                group():获取刚才查找过的数据
        (4)案例
                A:判断电话号码和邮箱
                        Scanner sc=new Scanner(System.in);
                        System.out.println("请输入邮箱");
                        String email=sc.nextLine();
               
                        //定义正则表达式
                        String regex="[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,6}(\\.[a-zA-Z_0-9]{2,3})+";
                        //String regex="\\w+@\\w{2,6}(\\.\\w{2,3})+";//上面代码的简写
                        boolean flag=email.matches(regex);
                        System.out.println("你输入的邮箱格式:"+flag);
                B:按照不同的规则分割数据
                        String s1="aa,bb,cc";
                        String[] strArray1=s1.split(",");
                       
                        String s2="aa.bb.cc";
                        String[] strArray2=s2.split("\\.");
                       
                        String s3="aa  bb     cc";
                        String[] strArray3=s3.split(" +");
                       
                        String s4="E:\\javaSe\\day14\\avi";
                        String[] strArray4=s4.split("\\\\");//面试题
                C:把论坛中的数字替换为*
                        String s="helloqq12345world";
                        String regex="\\d";
                        String ss="*";
                        String result=s.replaceAll(regex,ss);
                D:获取字符串中由3个字符组成的单词

8 个回复

倒序浏览
写的很好,学习了!
回复 使用道具 举报
今天学习正则表达式~
回复 使用道具 举报
很完成整,常用的都有了
回复 使用道具 举报
还在学习中。。。
回复 使用道具 举报
刚好有学习一遍,这个正则表达式还是很有用的,
回复 使用道具 举报
王冲6060 发表于 2015-6-7 08:18
写的很好,学习了!

共同进步。共同努力
回复 使用道具 举报
很好!!
回复 使用道具 举报
王冲6060 发表于 2015-6-7 08:18
写的很好,学习了!

谢谢,大家一起进步
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马