目录
[a-z&&[def]] a-z和def的交集为def (既a-z里有,def中也有的字符或数字)
[a-z&&[^bc]] a-z和非bc的交集 等同于[ad-z]
[a-z&&[^m-p]] a-z和除了m-p的交集 等同于[a-lq-z]
定义在 class Pattern中
可以通过API帮助文档查看
正则表达式作用:
作用一:校验字符串是否满足规则
作用二:在一段文本中查找满足要求的内容
正则表达式书写形式
(只能匹配一个字符) 从左往右依次判断
字符类(只能匹配一个字符)
[abc] 只能是abc
[^abc] 除了abc以外的任何字符
[a-zA-Z] a到z A到Z 包括(范围)
[a-d[m-p]] a到d或m到p
[a-z&&[def]] a-z和def的交集为def (既a-z里有,def中也有的字符或数字)
[a-z&&[^bc]] a-z和非bc的交集 等同于[ad-z]
[a-z&&[^m-p]] a-z和除了m-p的交集 等同于[a-lq-z]
预定义字符(只能匹配一个字符)
. 任何字符
\d 一个数字:[o-9]
\D 非数字:[^0-9]
\s 一个空白字符:[\t\n\xoB\f\r]
\S 非空白字符:[^\s]
\w [ a-zA-Z_0-9]英文,数字,下划线
\W [^\W]一个非单词字符
数量词
X? 一次或0次
X* 0次或多次
X+ 一次或多次
X{n} 正好n次
X{n,} 至少n次
X{n,m} 至少n次但不超过m次
注:
1:|表示或者
2:(?i)忽略大小写
正则表达式格式图
package zhengze;
public class konwledge {
//正则表达式
// 作用一:校验字符串是否满足规则
// 作用二:在一段文本中查找满足要求的内容
public static void main(String[] args) {
/*现在校验一个qq号码是否符合规范
规范:6位及20位之间,0不能在开头,必须全部是数字
*/
String qq="1234352345";
//1:不用正则表达式
System.out.println(checkQQ(qq));
//2:正则表达式
//qq.matches(regex 正则表达式)
//当前调用matches的字符串满足正则表达式则返回true 不满足则返回false
qq.matches("[1-9]\\d{5,19}");
}
public static boolean checkQQ(String qq){
int len=qq.length();
if(len<6||len>20){
return false;
}
//0不能在开头
//startWith 静态方法,将字符串开头与参数进行比较,相同返回true,不同返回false
if(qq.startsWith("0")){
return false;
}
//必须全部是数字
for (int i = 0; i < qq.length(); i++) {
char c=qq.charAt(i);
if(c<'0'||c>'9'){
return false;
}
}
return true;
}
}