1. 字符串支持正则表达式的方法一:boolean matches(String regex) 根据给定的正则表达式验证当前字符串是否满足格式要求,满足则返回true,否则返回false
/*
*电子邮箱的正则表达式:
* [a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9]+)+
*/
String regex="[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z0-9]+)+";
String mail="fancq@tedu.cn";
boolean flag=mail.matches(regex);
if(flag){
System.out.println("是邮箱");
}else{
System.out.println("不是邮箱");
}
/*
* 验证手机号的正则表达式
* 要求用户输入一个手机号,然后经过验证输出是否是手机号码
*/
System.out.println("请输入一个手机号码:");
Scanner scanner=new Scanner(System.in);
String line=scanner.nextLine();
/*
* 1[0-9]{10}
*/
String regex1="1[0-9]{10}";
if(line.matches(regex1)){
System.out.println("是手机号");
}else{
System.out.println("不是手机号");
}
2. 字符串支持正则表达式方法二:String[] split(String regex) 将当前字符串按照满足正则表达式的部分进行拆分,返回拆分后的每段内容。
String str="abc123def456ghi789jkl";
/*
* 按照数字拆分,保留所有的英文字母部分
*/
String regex="[0-9]+";
String[] array=str.split(regex);
//打桩
System.out.println("len:"+array.length);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
/*
* 图片重命名
* 1.jpg
*/
String imgName="1.jpg";
String names[]=imgName.split("\\.");
imgName=System.currentTimeMillis()+"."+names[1];
System.out.println(imgName);
3. 字符串支持正则表达式方法三:String replaceAll(String regex,String str) 将当前字符串中满足正则表达式的部分替换为给定的字符串。
String str="abc123def456ghi789jkl";
/*
* 将数字部分替换为"#NUMBER#"
*/
str=str.replaceAll("\\d+","#NUMBER#");
System.out.println(str);
/*
* 使用replaceAll实现图片重命名
*/
String imgName="1.jpg";
imgName=imgName.replaceAll(".+\\.", System.currentTimeMillis()+".");
System.out.println(imgName);
/*
* 和谐用语
*/
String regex1="(wqnmlgb|cnm|sb|2b|nc|tmd)";
String message="wqnmlgb!你这个sb";
message=message.replaceAll(regex1, "****");
System.out.println(message);