一、正则表达式概述
1、正则表达式是用来干嘛的?
正则表达式可以用字符串来描述规则,并用来匹配字符串;
2、正则表达式的好处:
- 一个正则表达式就是一个描述规则的字符串(正则表达式就是字符串)
- 只需要编写正确的规则就可以让正则表达式引擎去判断目标字符串是否符合规则
- 正则表达式是一套标准,可用于任何语言
- JDK内置正则表达式引擎:java.util.regex
示例:判断用户输入的年份是否是19xx年:
规则:第一位是1,第二位是9,第三位和第四位都是0-9
正则构造:1 9 \d \d
由于Java里 \ 表示的是转义字符,所以用字符串描述的正则就是"19\d\d"(正则中\d就是表示0-9中的一个整数)
package PatternText;
public class patternText01 {
public static void main(String[] args) {
String year = "1997";
//boolean matches(String regex)
//告知此字符串是否匹配给定的正则表达式。
System.out.println(year.matches("19\\d\\d"));//true
}
}
二、正则表达式的匹配规则
精准匹配:“abc”
√ “abc"
× “ab”
× “Abc”
× “abcd”
特殊字符是需要转义的(如果不知道要不要转义的特殊字符,加上转义总是不会出错的),例:“a\¥c”>“a¥c"这里还没转为Java的字符串,如果转为Java的字符串应为"a\\¥c”
1、我们也可以用 . 点匹配任意字符,“a.c”>“aoc”>“a*c”…都是可以的
2、\w可以匹配一个字母、数字或下划线,“java\w”>“javaA”>“java_”>“java8”
3、可以用\s匹配空白字符,tab键也是空白字符,“A\sB”>“A B”>“A B”(但不能俩空白字符或没空白字符)
4、可以用\D匹配非数字,“00\D">“00A”>“00&”
修饰符 * 可以匹配任意个字符
修饰符 + 可以匹配至少一个字符
修饰符 ?可以匹配零个或一个字符
修饰符 {n} 可以匹配n个字符:“\d{6}”==>表示匹配六个数字
修饰符{n,m}可以匹配n~m个字符
修饰符{n,}可以匹配至少n个字符
三、在Java中的简单运用
1、boolean matches(String regex)
告知此字符串是否匹配给定的正则表达式。 (match:匹配)
2、String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。