正则表达式:判断是否满足条件
Regex类:正则表达式的规则类,package jdk.nashorn.internal.runtime.regexp.joni;
字符规则:
·x:表示字符x
·\\:表示\
字符类规则:
·[abc]:表示abc中的任一个满足要求
·[^abc]:表示除了abc别的字符都满足
·[a-zA-Z]:表示a到z或者A到Z都满足,两头的字母包括在内
预定义字符类:
·.:表示任意字符
·\d:表示[0-9],使用时要转义,即\\d
·\D:表示[^0-9],非数字,需转义
·\w:单词字符,表示[a-zA-Z_0-9],即正则表达式中组成单词的东西就是这些
·\W:[^a-zA-Z_0-9],非单词字符
边界匹配器:
·^:表示行的开头
·$:表示行的结尾
·\b:单词的边界,即不是单词字符的地方,例如hello world?中间的空格和?都是单词边界
数量词:
·x ?x:一次或一次都没有
·x * x:零次或多次
·x + x:一次或多次,至少一次
·x {n} x:恰好n次
·x {n,} x:至少n次
·x {n,m} x:至少n次,不超过m次
·不写默认一次
常用的方法:
matches():判断功能,是否满足表达式,此方法在String类中。
split():分割功能,String类的方法,根据给定正则表达式的匹配拆分次字符串,比如好友搜索
replaceAll():替换功能,String类的方法,根据给定的字符串替换所有正则表达式中匹配的字符串
简单例子:邮箱格式检验
public void test() {
// 键盘录入邮箱
Scanner scanner = new Scanner(System.in);
System.out.println("请输入邮箱:");
String email = scanner.nextLine();
// 定义邮箱格式
//String regex = "[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,6}(\\.[a-zA-Z_0-9]{2,3})+";
String regex = "\\w+@\\w{2,6}(\\.\\w{2,3})+";
// 判断并输出结果
System.out.println(email.matches(regex));
}