首页 > 代码库 > java中关于正则表达式的基本使用

java中关于正则表达式的基本使用

概述,当对一个字符串的操作处理逻辑非常复杂,代码量大时可以采取正则表达式的方式来对字符串进行处理,但也有缺点,就是要熟悉各字符,符号及符号组合的意义需要经常使用才能孰能生巧

一.正则表达式的特点

1.作用:符合一定规则的表达式,用于专门操作字符串

2.特点:用于一些特定的符号来表示一些代码操作

3.好处:可以简化对字符串的复杂操作

二.匹配功能

1.定义:String matches方法,用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false

技术分享
 1 public static void checkQQ(){ 2         String qq="123456a"; 3         String regex="[1-9][0-9]{4,14}"; 4         boolean flag=qq.matches(regex); 5         if(flag){ 6             System.out.println(qq+"is ok..."); 7         }else{ 8             System.out.println(qq+"输入错误"); 9         }10     }
View Code
技术分享
1 public static void demo(){2         String str="b23a23456789";3         String reg="[a-zA-Z]\\d{2}[a-z]\\d*";4         boolean flag=str.matches(reg);5         System.out.println(flag);6     }
View Code
技术分享
该方法不使用正则表达式,操作复杂,代码量大public static void checkQQ_1(){        String qq="";        int len=qq.length();        if(len>=5&&len<=15){            if(!qq.startsWith("0")){                try {                    long l=Long.parseLong(qq);                    System.out.println("qq:"+qq);                } catch (Exception e) {                    // TODO: handle exception                    System.out.println("出现非法字符");                }                 /*char arr[]=qq.toCharArray();                boolean flag=false;                for (int i = 0; i < arr.length; i++) {                    if(!(arr[i]>=‘0‘&&arr[i]<=‘9‘)){                        flag=false;                        break;                    }                }                if(flag){                    System.out.println("qq:"+qq);                }else{                    System.out.println("非法字符");                }*/            }else{                System.out.println("qq不能以0开头");            }        }else{            System.out.println("长度错误");        }    }
View Code

三.切割

1.String sprit();

技术分享
1 public static void splitDemo(String str,String reg){2         //String reg=" +";//按多个空格来进行切割3         String[] attr=str.split(reg);4         System.out.println(attr.length);5         for (String s : attr) {6             System.out.println(s);7         }8     }
View Code

四.替换

1.String replaceAll()

技术分享
1 public static void replaceAllDemo(String str,String regex,String newStr){2         str=str.replaceAll(regex, newStr);3         System.out.println(str);4     }
View Code

五.获取

1.定义:将字符串中符合规则的子串取出

2.操作步骤

2.1 将正则表达式封装成对象

2.2 让正则对象和要操作的字符串相关联

2.3 关联后,获取正则匹配引擎

2.4 通过引擎对符合规则的子串进行操作,比如取出

技术分享
 1 public static void getDemo(){ 2         String str="ming tian yao fang jia le,da jia. "; 3         String reg="\\b[a-z]{3}\\b";//\b代表单词边界 4         //将规则封装成对象 5         Pattern p=Pattern.compile(reg); 6         //让正则对象和要作用的字符串相关联,获取匹配器对象 7         Matcher m=p.matcher(str); 8         System.out.println(m.matches());//其实String类中的matches方法,用的就是Pattern和Matcher对象来完成的 9                                         //只不过被String类的方法封装后,用起来比较简单,但是功能却单一10         //boolean b=m.find();//将规则作用到字符串上,进行符合规则的子串查找11         //System.out.println(b);12         //System.out.println(m.group());//用于获取匹配后的结果13         while(m.find()){14             System.out.println(m.group());15             System.out.println(m.start()+"...."+m.end());16         }17         18     }
View Code

六.正则表达式功能的选择

1.判断字符串是否正确,匹配功能

2.将字符串变成另一个字符串,替换功能

3.按照指定的方式将字符串变成多个字符串,切割功能

4.得到符合需求的字符串子串,获取功能

--------------------------------------技术改变生活,知识改变命运!

java中关于正则表达式的基本使用