正则表达式介绍:
1.什么是正则表达式?
正则表达式实际上就是一串字符串,只不过这个字符串匹配了一定的规则。
2.正则表达式的引入:
qq号的校验规则:
1.全部都是数字
2.不能以0开头
3.长度在5-12之间
1.不使用正则表达式检验qq:
public static boolean checkQQ(String qq) {
//将字符串转换成字符数组
char[] arr = qq.toCharArray();
//遍历字符数组并进行判断
for (char c : arr) {
//字符数组中有非数字元素,返回false
if (!(c >= '0' && c <= '9')) {
return false;
}
}
//如果以0开头,返回false
if (qq.startsWith("0")) {
return false;
}
//长度判断
int length = qq.length();
if (length < 5 || length > 12) {
return false;
}
//代码执行到这里,说明符合qq号规则
return true;
}
2.使用正则表达式进行校验:
public class RegEx {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true){
System.out.println("请输入QQ号:");
String qq = scanner.nextLine();
//使用正则表达式进行校验
String regex="[1-9]\\d{4,11}";
System.out.println("是否符合qq号规则:"+qq.matches(regex));
System.out.println("=========分割线===================");
}
}
}
可以很明显的看出,使用正则表达式对字符串进行校验更加方便简洁。
3.常用正则表达式的使用:
1.字符类:注意[]只代表一个字符
1. [abc]:代表a或者b,或者c字符中的一个。
2. [^abc]:代表除a,b,c以外的任何字符。
3. [a-z]:代表a-z的所有小写字符中的一个。
4. [A-Z]:代表A-Z的所有大写字符中的一个。
5. [0-9]:代表0-9之间的某一个数字字符。
6. [a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符。
7. [a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符。
2.逻辑运算符:
1. &&:并且
2. | :或者
3.预定义字符:注意'\'在使用的时候要使用两个'\\',因为要进行转义
1. "." : 匹配任何字符。
2. "\d":任何数字[0-9]的简写;
3. "\D":任何非数字\[^0-9\]的简写;
4. "\s": 空白字符:[ \t\n\x0B\f\r] 的简写
5. "\S": 非空白字符:\[^\s\] 的简写
6. "\w":单词字符:[a-zA-Z_0-9]的简写
7. "\W":非单词字符:\[^\w\]
4.数量词:'X'代表的是任意一个正则表达式
1. X? : 0次或1次
2. X* : 0次到多次
3. X+ : 1次或多次
4. X{n} : 恰好n次
5. X{n,} : 至少n次
6. X{n,m}: n到m次(n和m都是包含的)
5.分组:使用()进行分组:
(ab){3}:ab作为一组,重复出现三次;