黑马程序员----正则表达式

来源:互联网 发布:如何分析数据spss 编辑:程序博客网 时间:2024/06/15 02:51

                                                            第一部分  基础知识篇

概念:

正则表达式:符合一定规则的表达式

作用:对字符串进行操作,学习正则表达式就是学习一些特殊字符的使用

好处:可简化对字符串的操作

 

                                    第二部分  具体操作功能

匹配:

String matches方法:用规则匹配字符串,只要有一出不符合就匹配结束,返回false

[abc]代表某一位置上是否出现abc

example:

String s =“a”;

String reg1 = “[abc]”

String reg2 = “[a z]”

String reg3 = “[^abc]”

boolean b1 = a.matches(reg1);//判断是否存在abc中的一个,并且只有一个字符

boolean b2 = a.matches(reg2);//判断是否存在a到z中的一个,并且只有一个字符

boolean b3 = a.matches(reg3);//不允许出现abc中的任何一个字符

System.out.println(b1);

System.out.println(b2);

System.out.println(b3);

 

切割:

String split();

example:

String str = "haha,heihei,xixi,hehe";

String reg = ",";

String [ ] arr = str.split(reg);

for(String s : arr)

{

          System.out.println(s);

}

主要:一些特殊的符号不能用来作为切割符,例如  .(点)

使用的时候 \.代表正则表达的点 \\.才可以用做.(点)来切割

 

替换:

String replaceAll( )

example:

public class demo

    public static void replace(String str,String reg,String newstr  )

    {

           str = str.replaceAll(reg,newstr);

           System.out.println(str);

    }

    public static void main(String [ ] arg)

    {

            String str = "asdf2323fsad345gdg3454dsgag35asg"

           //只要存在连续5个字符,则替换成#

           replaceAll(str,"\\d[5, ]","#");

    }

}

 

获取:将字符串中符合要求的子串获取

操作步骤:

将正则表达式封装成一个对象

将对象与字符串关联

获取正则匹配引擎

通过引擎对符合要求的子串操作 比如取出

example:

import java.util.regex*

class demo

{

        public static void main()

        {

                  getdemo();

        }

        public static void getdemo()

       {

                 String str = "nice to meet you java"

                 //创建规则

                 String reg=\\b[a z]{3}\\b;

                 //将规则封装成对象

                 Pattern  p = Pattern.compile(reg);

                 //将正则对象与要作用的字符串相关联,获取匹配器对象

                 Mather m = p.matcher(str);

                //将规则作用到字符串上,循环

                while(m.find)

                {

                              //打印匹配后的结果

                             System.out.println(m.grop)

                              //打印开始角标与结束角标

                            System.out.println(m.start()+":"+"m.end()")

               }

       }

}

 

 

                                        第三部分:总结

正则表达式极大的简化了对字符串的操作,字符串的匹配,获取等一些经常需要用到的操作,如果用String操作非常麻烦且容易出错,出现正则表达式则避免这一类问题

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0
原创粉丝点击