字符串类中涉及正则表达式的常用方法:
public boolean matches(String regex) //判断字符串是否匹配给定的规则:
/*
* 检查QQ号码是否合法
* 0不能开头,全数字, 位数5,10位
* 123456
* \\d \\D匹配不是数字
*/
public static void checkQQ(){
String QQ = "123456";
//检查QQ号码和规则是否匹配,String类的方法matches
boolean b = QQ. matches("[1-9][\\d]{4,9}");
System.out.println(b);
}
/*
* 检查手机号码是否合法
* 1开头 可以是34578 0-9 位数固定11位
*/
public static void checkTel(){
String telNumber = "13351280057";
//String类的方法matches
boolean b = telNumber. matches("1[34857][\\d]{9}");
System.out.println(b);
}
public String[] split(String regex) //根据给定正则表达式的匹配规则,拆分此字符串:
/*
* String类方法split对字符串进行切割
* 12-25-36-98 按照-对字符串进行切割
*/
public static void split_1(){
String str = "12-25-36-98";
//按照-对字符串进行切割,String类方法split
String[] strArr = str.split("-");
System.out.println("数组的长度"+strArr.length);
for(int i = 0 ; i < strArr.length ; i++){
System.out.println(strArr[i]);
}
}
/*
* String类方法split对字符串进行切割
* 18 22 40 65 按照空格切割字符串
*/
public static void split_2(){
String str = "18 22 40 65";
String[] strArr = str.split(" +");
System.out.println("数组的长度"+strArr.length);
for(int i = 0 ; i < strArr.length ; i++){
System.out.println(strArr[i]);
}
}
/*
* String类方法split对字符串进行切割
* 192.168.105.27 按照 点切割字符串
*/
public static void split_3(){
String ip = "192.168.105.27";
String[] strArr = ip.split("\\.");
System.out.println("数组的长度"+strArr.length);
for(int i = 0 ; i < strArr.length ; i++){
System.out.println(strArr[i]);
}
}
public String replaceAll(String regex,String replacement) //将符合规则的字符串内容,全部替换为新字符串:
/*
* "Hello12345World6789012"将所有数字替换掉
* String类方法replaceAll(正则规则,替换后的新字符串)
*/
public static void replaceAll_1(){
String str = "Hello12345World6789012";
str = str. replaceAll("[\\d]+", "#");
System.out.println(str);
}
正则表达式的练习:
匹配正确的数字:
匹配规则:
匹配正整数:”\\d+”
匹配正小数:”\\d+\\.\\d+”
匹配负整数:”-\\d+”
匹配负小数:”-\\d+\\.\\d+”
匹配保留两位小数的正数:”\\d+\\.\\d{2}”
匹配保留1-3位小数的正数:”\\d+\\.\\d{1,3}”
匹配合法的邮箱:
public class RegexDemo2 {
public static void main(String[] args) {
checkMail();
}
/*
* 检查邮件地址是否合法
* 规则:
* 1234567@qq.com
* mym_ail@sina.com
* nimail@163.com
* wodemail@yahoo.com.cn
*
* @: 前 数字字母_ 个数不能少于1个
* @: 后 数字字母 个数不能少于1个
* .: 后面 字母
*
*/
public static void checkMail(){
String email ="abc123@sina.com";
boolean b = email. matches("[a-zA-Z0-9_]+@[0-9a-z]+(\\.[a-z]+)+");
System.out.println(b);
}
}