前言
正则表达式:是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。
一、匹配功能
使用String类中的matches方法。
先去学习Pattern类,了解规则。
字符类,预定义字符类,边界匹配器,数量词
二、使用步骤
1.常用规则
下列只是常用的规则,API文档里面还有其他的规则
字符
x 字符 x
\\ 反斜线字符
字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
2.例子
校验qq号码
1.要求必须是5-15位
2.0不能开头
3.必须都是数字
boolean matches(String regex) :判断当前字符串是否匹配指定的正则表达式,如果匹配则返回true,否则返回false
代码如下(示例):
public static void main(String[] args) {
String qq = "12345";
boolean flag = checkQQ(qq);
System.out.println(flag);
boolean flag1 = qq.matches("[^0]\\d{4,14}");
System.out.println(flag1);
}
public static boolean checkQQ(String qq) {
int length = qq.length();
//要求必须是5-15位
if(length < 5 || length > 15) {
return false;
}
//0不能开头
if(qq.startsWith("0")) {
return false;
}
//必须都是数字
for (int i = 0; i < length; i++) {
//得到参数的每一个字符
char c = qq.charAt(i);
if(c < '0' || c > '9') {
return false;
}
}
return true;//符合要求
}