目录
一、正则表达式的概念
正则表达式是对字符串操作的逻辑表达式,说的有点抽象了吧。那说说它的作用其实更加好懂。正则表达式可以校验字符串是否符合规则(规则由你制定),那么也就可以通过它来在一段文本中寻找自己想要的信息了。
二、正则表达式的语法
(1)字符类(只匹配一个字符)
1:[abc] 只能是abc其中一个字符
2:[^abc] abc这三个字符都不能被选择,其他字符都可以
3:[a-zA-Z] 只能在a到z和A到Z这两个区间中选,这两个区间外的字符不可被选择
4:[a-d[m-p]] 只能在a-d和m-p这两个区间选,与第三条是一样的意思的
5:[a-z&&[def]] a-z和def的交集,也就是只能是def这三个字符中的其中一个
6:[a-z&&[^def]] a-z中并且除了def的其它字符
7:[a-z&&[^m-p]] a-z中除了m-p的字符,也就是[a-lq-z]
(2)预定义符(只匹配一个字符)
1: . 任意字符
2:\d 一个数字 [0-9]
3:\D 非数字 [^0-9]
4:\s 一个空白字符[\t\n\xOB\f\r]
5:\S 非空白字符
6:\w [a-zA-Z_0-9]英文数字下划线
7:\W [^\w]
(3)数量词
1:x? x,出现一次或者是0次
2:x* x,出现了0次或者是多次
3:x+ x,出现了一次或者是多次
4:x{n} x,出现了正好n次
5:x{n,} x,出现了至少n次
6:x{n,m} x,出现了至少n次但不超过m次
三、正则表达式的具体实例
这里我们用到的是matches方法,它的返回值是boolean类型的,具体实例我们看下面吧。
public class Solution { public static void main(String[] args) { System.out.println("a".matches("[ab]")); System.out.println("abc".matches("[abc]"));//毕竟只能一个字符匹配,所以是false,不是true; System.out.println("abc".matches("[abc][abc][abc]"));//毕竟只能一个字符匹配 System.out.println("abc".matches("[^abc]")); System.out.println("123abc".matches("\\d{3}\\w{3}")); System.out.println("18962".matches("\\d{1,}")); System.out.println("azn".matches("[abc][azxc&&az][n]")); } }