正则表达式练习
匹配正确的数字
匹配规则:
匹配正整数:”\\d+”
匹配正小数:”\\d+\\.\\d+”
匹配负整数:”-\\d+”
匹配负小数:”-\\d+\\.\\d+”
匹配保留两位小数的正数:”\\d+\\.\\d{2}”
匹配保留1-3位小数的正数:”\\d+\\.\\d{1,3}”
匹配合法的邮箱
匹配规则:
”[a-zA-Z_0-9]+@[a-zA-Z_0-9]+(\\.[a-zA-Z_0-9]+)+”
”\\w+@\\w+(\\.\\w+)+”
获取IP地址(192.168.1.100)中的每段数字
匹配规则:
”\\.”
package cn.learn.demo01;
/*
* 实现正则规则和字符串进行匹配,使用到字符串类的方法
* String类三个和正则表达式相关的方法
* boolean matches(String 正则的规则)
* "abc".matches("[a]") 匹配成功返回true
*
* String[] split(String 正则的规则)
* "abc".split("a") 使用规则将字符串进行切割
*
* String replaceAll( String 正则规则,String 字符串)
* "abc0123".repalceAll("[\\d]","#")
* 安装正则的规则,替换字符串
*/
public class RegexDemo {
public static void main(String[] args) {
checkTel();
}
/*
* 检查手机号码是否合法
* 1开头 可以是34578 0-9 位数固定11位
*/
public static void checkTel(){
String telNumber = "1335128005";
//String类的方法matches
boolean b = telNumber.matches("1[34857][\\d]{9}");
System.out.println(b);
}
/*
* 检查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);
}
}