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+\.[a−z]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);
}