码迷,mamicode.com
首页 > 编程语言 > 详细

java之正则表达式的使用1

时间:2016-04-16 21:13:16      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

1.反斜杠和转义字符

废话不多说,直接上demo

public static void main(String[] args) {
        // TODO Auto-generated method stub
        String phoneNum= "28516885191";
        isPhoneNum(phoneNum);
    }
    //13800000876
    public static void isPhoneNum(String phoneNum){
        String regex= "1[34578][0-9]{9}";
        String regex2= "1[34578]\\d{9}";
        boolean isPhoneNum= phoneNum.matches(regex);
        System.out.println("is phoneNum?  "+ isPhoneNum);
    }

 

总结

/*
 * 正则表达式匹配数字的规则,可以用[0-9]和   \d来表示,
 * 但在java语言中,\在字符串中本身是转义字符, 也就是说\不是字符本身的反斜杠\,而是有特殊意义的(转义)
 * 正则中,\d,是将普通反斜杠和d连一块,表示数字 (也就是说,正则中的\不是转义字符)。所以java语言中,我们不能直接用\d来表示数字,
 * 需要这样:\\d    前一个反斜杠,是转义字符,将第二个反斜杠转义字符转译成 普通的字符反斜杠
 *
 * */

 

组的使用及切割:

public static void main(String[] args) {
        // TODO Auto-generated method stub
        String string= "andittttbobmmmmmmmmmmmcyanxxdenim";
        String regex= "(.)\\1+";
        String[] strings= string.split(regex);
        for (String string2 : strings) {
            System.out.println("name: "+ string2 );
            
        }
    }

output:
name: andi
name: bob
name: cyan
name: denim

总结:

在表达式 ((A)(B(C))) 中,存在四个组:

1 ((A)(B(C)))

2  (A)

3 (B(C))

4 (C)

组零始终代表整个表达式

3.组的使用及替换:

public static void main(String[] args) {
        String str1_1= "andittttbobmmmmmmmcyanxxdenim";//源字符串
        String regex1= "(.)\\1+";
        //目标字符串: andi#bob#cyan#denim
        String str1_2= str1_1.replaceAll(regex1, "#");
        System.out.println("str1_2: "+ str1_2);
        
        String str2_1= "andittttbobmmmmmmmcyanxxdenim";//源字符串
        String regex2= "(.)\\1+";
        //目标字符串: anditbobmcyanxdenim
        String str2_2= str2_1.replaceAll(regex2, "$1");
        System.out.println("str2_2: "+ str2_2);
        
    }

output:
str1_2: andi#bob#cyan#denim
str2_2: anditbobmcyanxdenim

总结:在String.replaceAll()方法中,使用$符号来让第二个参数使用第一个参数的值

4.1切割:

public static void main(String[] args) {
        // TODO Auto-generated method stub
        String path1= "com/westward/p/5399166";//源字符串
        //目标字符串com.westward.5399166
        String regex= "/";
        String path2= path1.replaceAll(regex, ".");
        System.out.println(path2);
    }

output:
com.westward.p.5399166

4.2切割:

public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str= "15800001111";//源字符串
//        目标字符串:158****1111;
        String regex= "(\\d{3})\\d{4}(\\d{4})";
        String str2= str.replaceAll(regex, "$1****$2");
        System.out.println("str2: "+str2 );
    }

output:
str2: 158****1111

java之正则表达式的使用1

标签:

原文地址:http://www.cnblogs.com/westward/p/5399166.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!