正则表达式
import java.util.Scanner;
/**
* 正则表达式:可以用于校验一个字符串是否符合规则
* 语法:
* 字符:
* x x字符
\\ 反斜线字符
\t 制表符
\n 换行符
\r 回车符
字符类:
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
预定义字符类:
. 任何字符 如果本身就是. \. qq.com 写正则表达式(\\.)
\d 数字:[0-9] 写正则表达式 :\\d
\w 单词字符:[a-zA-Z_0-9]:字母大小写,数字字符 \\w
边界匹配器:
^ 行的开头
$ 行的结尾
\b 单词边界 尾 (helloword?haha:world)
Greedy 数量词(重点)
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X字符恰好出现n次
X{n,} X字符至少出现n次
X{n,m} X字符至少出现n次,但不超过m次
* */
public class Text1 {
public static void main(String[] args) {
// 校验QQ号
// 需求:键盘录入一个qq号码,需要校验QQ号码
// 要求: 1)5~15的数字组成
// 2)不能以0开头
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个QQ号");
String qq = sc.nextLine();
System.out.println(cheakQQ(qq));
}
public static boolean cheakQQ(String qq) {
String regex = "[1-9][0-9]{4,14}";//定义正则表达式规则
boolean flag = qq.matches(regex);//调用match()方法;以正则表达式作为参数
return flag;
}
}
import java.util.Scanner;
//校验邮箱
public class Text2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个邮箱");
String email = sc.nextLine();
System.out.println(cheakEmail(email));
}
public static boolean cheakEmail(String email) {
String regex = "[0-9A-Za-z]+@[0-9a-z]{2,6}(\\.[a-z]{2,3}){1,3}";
boolean flag = email.matches(regex);
return flag;
}
}