正则表达式简介
正则表达式定义了字符串的模式。
正则表达式可以用来搜索、编辑或处理文本。
正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
正则表达式实例
- 判断手机号,我们用正则表达式\d
boolean isValidMobileNumber(String s) {
return s.matches("\\d{11}");
}
- Java标准库的java.util.regex包内置了正则表达式引擎,在Java程序中使用正则表达式非常简单
- 20\d\d,其中\d表示任意一个数字
- 把正则表达式转换为Java字符串就变成了20\d\d,注意Java字符串用\表示\
public class Main {
public static void main(String[] args) {
String regex = "20\\d\\d";
System.out.println("2019".matches(regex)); // true
System.out.println("2100".matches(regex)); // false
}
}
匹配规则
- 如果正则表达式有特殊字符,那就需要用\转义。例如,正则表达式a&c,其中&是用来匹配特殊字符&的,它能精确匹配字符串"a&c",但不能匹配"ac"、"a-c"、"a&&c"等
- 正则表达式a.c中间的.可以匹配一个任意字符,例如,下面的字符
- 用.可以匹配任意字符。如果我们只想匹配0~9这样的数字,可以用\d匹配。例如,正则表达式00\d可以匹配001,002,003等
- \w匹配一个字母、数字、下划线
- \s匹配一个空格字符,包括tab字符
- *匹配任意个字符
- +匹配至少一个字符
- ?匹配0个或者一个字符
- {3}指定3个
- 匹配n到m个字符
- x|y,匹配x或y
- \n,换行符匹配
- /s,匹配空白字符