第二十四天正则表达式

1、通过下面的代码,熟悉正则表达式的使用
public static void main(String args[]){
//把字符串中的 “aaa”全部替换为”z” 打印zbzcz
System.out.println(“aaabaaacaaa”.replaceAll(“a{3}”,”z”));

    //把字符串的"aaa","aa"或者"a" 全部替换为"*" 打印*b*c* 
    System.out.println("aaabaaca".replaceAll("a{1,3}","\\*")); 

    //把字符串中的数字全部替换为"z" 打印zzzazzbzzcc 
    System.out.println("123a44b35cc".replaceAll("\\d","z")); 

    //把字符串中的非数字全部替换为"0" 打印1234000435000 
    System.out.println("1234abc435def".replaceAll("\\D","0")); 

    //把字符串中的"."全部替换为"\"打印abc\def\ghi\jk 
    System.out.println("abc.def.ghi.jk".replaceAll("\\.","\\\\")); 

    //把字符串中的"a.b"全部替换为"-","a.b"表示长度为3的字符串,以a开头以b结尾 
    //打印-hello-lining 
    System.out.println("axbhelloasblining".replaceAll("a.b","-")); 

    //把字符串中的所有词字符替换为"#" 
    //正则表达式"[a-zA-Z_0-9]等价于"\w" 
    //打印#.#.#.#.#. 
    System.out.println("a.b.c.1.2.".replace("\\w","#")); 

}

2、java中用正则表达式判断字符串是否数字
public static void main(String args[]){
String str=”4566”;
Pattern pattern = Pattern.compile(“[0-9]*”);
Matcher isNum = pattern.matcher(str);
//str是数字返回true
System.out.println(isNum.matches());

     //str不为数字返回false
     str="fdsfds33";
     isNum = pattern.matcher(str);
     System.out.println(isNum.matches());
}

3、java验证手机号码
public static void main(String args[]){
//正则手机号码通配符
String tph=”^((13[0-9])|(15[^4,\D])|(18[0,5-9]))\d{8}$”;
Pattern pattern = Pattern.compile(tph);

    //java验证手机号码格式
    String str="13693347897";
    Matcher isNum = pattern.matcher(str);
    System.out.println(isNum.matches());

}

4、编写一个程序,检测用户输入的是否是一个邮箱
思路:验证规则:^表示开头,
后跟(字母数字下划线)一个以上所以用\w+
然后是@(必须有)和后缀修饰(有很多,一般2个小写字母以上)所以用[a-z]{2,}
结尾标志 \w+@\w+\.[az]2,

public static void main(String args[]){
String ts1 = “755293352@qq.com”; //测试字符串1
String ts2 = “yahoo.com”; //测试字符串2
String pat = “^\w+@\w+\.[a-z]{2,}$”; //定义验证规则

    Pattern p = Pattern.compile(pat);                   //实例化Pattern类
    Matcher m1 = p.matcher(ts1);                        //实例化Matcher类
    Matcher m2 = p.matcher(ts2);                        //实例化Matcher类



    if(m1.matches()){                           //使用正则验算
        System.out.println("字符串:"+ts1+"是一个邮箱地址。");
    }else{
        System.out.println("字符串:"+ts1+"不是一个邮箱地址。");
    }
    if(m2.matches()){                           //使用正则验算
        System.out.println("字符串:"+ts2+"是一个邮箱地址。");
    }else{
        System.out.println("字符串:"+ts2+"不是一个邮箱地址。");
    }
}

5、治疗口吃。
将字符串“我我我我我我我……….我…….要要要要要………………要要要要…学习习习习…….习习习习习习习习编程程程程程程…….程程程程程程程程程”变成“我要学习编程”
思路:先将….去掉:使用”\.+”模式,再将叠词替换成一个:使用”(.)\1+”模式。
public static void main(String args[]){
String str=”我我我我我我我……….我…….要要要要要………………要要要要…学习习习习…….习习习习习习习习编程程程程程程…….程程程程程程程程程”;
//1.先去掉.
String regex=”\.+”;
str=str.replaceAll(regex, “”);
//2.合并叠词。
regex=”(.)\1+”;
str=str.replaceAll(regex, “$1”);
System.out.println(str);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值