正则表达式入门
使用正则表达式匹配字符串
基本符号:
“.” :匹配任意单个字符
String s = "abc";
String pattern = "a.c";
System.out.println(s.matches(pattern));
“[]”:匹配中括号中存在的的字符,默认情况下匹配一个字符,中括号中可以是范围
String s = "a3c";
String pattern = "a[123]c";
System.out.println(s.matches(pattern));
String s = "a3c";
String pattern = "a[1-3]c";
System.out.println(s.matches(pattern));
“-”:表示范围,一般搭配中括号使用
String s = "a4c";
String pattern = "a[0-9]c";
System.out.println(s.matches(pattern)); //true
“|”:匹配或符号左边或右边的值
String s = "ab";
String pattern = "ab|dc"; //pattern
System.out.println(s.matches(pattern));
String s = "adc";
String pattern = "a[b|d]c";
System.out.println(s.matches(pattern));
“*”:表示任意数量
String s = "a33333c";
String pattern = "a[3]*c";
System.out.println(s.matches(pattern));
匹配单个字符时也可以这么写:
String s = "a33333c";
String pattern = "a3*c";
System.out.println(s.matches(pattern));
“+”:至少一个
String s = "a3c";
String pattern = "a3+c";
System.out.println(s.matches(pattern)); //true
String s = "ac";
String pattern = "a3+c";
System.out.println(s.matches(pattern)); //false
“?”:0个或1个
String s = "ac";
String pattern = "a3?c";
System.out.println(s.matches(pattern)); //true
String s = "a33c";
String pattern = "a3?c";
System.out.println(s.matches(pattern)); //true
“{n}”:n个,不能多不能少
String s = "a333c";
String pattern = "a[3]{3}c";
System.out.println(s.matches(pattern)); //true
String s = "a3c";
String pattern = "a[3]{3}c";
System.out.println(s.matches(pattern)); //false
“{m,n}”:大于等于m个小于等于n个
String s = "a333c";
String pattern = "a[3]{1,3}c";
System.out.println(s.matches(pattern)); //true
“^”:表示否定
String s = "abc";
String pattern = "a[^f]c";
System.out.println(s.matches(pattern)); //true
String s = "afc";
String pattern = "a[^f]c";
System.out.println(s.matches(pattern)); //false
“\S”:非空字符
String s = "afc";
String pattern = "a[\\S]c";
System.out.println(s.matches(pattern)); //true
String s = "a c";
String pattern = "a[\\S]c";
System.out.println(s.matches(pattern)); //false
“\s”:空格、回车符、制表符或者换页符
String s = "a\nc";
String pattern = "a[\\s]c";
System.out.println(s.matches(pattern)); //true
“\d”:数字
String s = "a4c";
String pattern = "a[\\d]c";
System.out.println(s.matches(pattern)); //true"\D":非数字
常用写法
[0-9] :0-9的整数
[a-z]:小写字母a-z
[A-Z]:大写字母A-Z