第二十四天正则表达式

来源:互联网 发布:厦门长庚医院网络挂号 编辑:程序博客网 时间:2024/05/21 22:30

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);

}
原创粉丝点击