正则表达式
1、单个字符
-
. 匹配单个字符
regex = "ja.a"; // . 表示任意字符一个 System.out.println("java".matches(regex)); //true
-
[ ] : 表示匹配括号内的任意一个字符
regex = "[123]"; //表示括号中的任意一个; System.out.println("1".matches(regex)); //true System.out.println("2".matches(regex)); //true System.out.println("3".matches(regex)); //true regex = "[a-z]"; //表示 a - z 中的任意一个字符 System.out.println("b".matches(regex)); //true System.out.println("3".matches(regex)); //false regex = "[a-zA-Z0-9]"; //表示 System.out.println("2".matches(regex)); //true; regex = "[a-d[m-p]]"; //a - d 或 m - p; regex = "[a - z && [^bc]]"; //不是bc的小写字母; regex = "[a - z && [^m - p]]"; //不是m-p的所有字符 regex = "[\\u4e00 - \\u9FA5]"; //汉子
-
[^ ] : 表示匹配除括号内的任意一个字符
regex = "[^123]"; //表示123以外的任意一个字符; System.out.println("4".matches(regex)); //false
-
\d:表示匹配数字
regex = "\\d"; //表示数字0 - 9; System.out.println("4".matches(regex)); //true
-
\D:表示匹配非数字
regex = "\\D"; //表示非数字 System.out.println("4".matches(regex)); //false
-
\w :表示匹配数字,字母,下划线
regex = "\\w"; //单词字符 [A - Z, a - z , 0 - 9 , _ ] System.out.println("4".matches(regex)); //true
-
\W:表示匹配处理数字,字母下划线以外的字符;
-
\s:表示匹配空白字符
-
\S:表示匹配非空白字符
2、数量
String regex = "a{3}"; //出现的次数3个a;
regex = "a{1,}"; //最少出现一次;
regex = "a{0,4}"; //a出现 0 - 4次;只有a字符
regex = "a{0,}"; // 0个或多个
regex = "a*"; //表示0个或多个
regex = "a?"; //表示0个或一个
regex = "a+"; //一个或多个
3、边界
- ^ 一行的开始
- $一行的结束
- \b : 词的边界
- \B;非单词边界匹配
4、逻辑运算
-
x|y:匹配x或y
String regex = "a|b"; System.out.println("a".matches(regex)); //true; System.out.println("b".matches(regex)); //true; System.out.println("ab".matches(regex)); //false;
-
XY:表示Y在x后,并且XY同时出现
-
():表示捕获,用$来使用
String tip = "1.注册学生" + "2.删除" + "3.修改" + "4.打印" + "0.退出"; String regex = "(\\B\\d\\.)"; //捕获;将替换的信息捕获 System.out.println(tip.replaceAll(regex,"\n$0")); //结果为: 1.注册学生 2.删除 3.修改 4.打印 0.退出