正则表达式:
实质上是一个模式,用于描述共享该模式的一组字符串正则表达式语法:
字符x x字符
\\ 反斜线字符
\t 制表符
\n 换行符
\r 回车符
字符类:
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
预定义字符类:
. 任何字符 如果本身就是.
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]:字母大小写,数字字符
边界匹配器:
^ 行的开头
$ 行的结尾
\b 单词边界 尾 (helloword?haha:world)
Greedy 数量词(重点)
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X字符恰好出现n次
X{n,} X字符至少出现n次
X{n,m} X字符至少出现n次,但不超过m次
程序示例:
public static void main(String[] args) {Scanner sc = new Scanner(System.in) ;
System.out.println("请输入一个QQ号码:");
String QQ =sc.nextLine() ;
boolean flag = checkQQ(QQ) ; //调用正则表达式
System.out.println(flag);
}
public static boolean checkQQ(String qq) {
return qq.matches("[1-9]\\d{4,14}") ; //字符串方法boolean matches(String regex) 告知此字符串是否匹配给定的正则表达式。
}
Pattern类
作用在于编译正则表达式后创建一个匹配模式.
String regex = "\\?|\\*";Pattern pattern = Pattern.compile(regex);
String patternStr = pattern.pattern();//返回\?\*
Matcher类
使用Pattern实例提供的模式信息对正则表达式进行匹配
Matcher matcher = pattern.matcher("??"); // Matcher matcher(String input) :模式对象转换成匹配器对象
boolean matches = matcher.matches();
Pattern中的两个常用方法
String[] split(CharSequence input)
围绕此模式的匹配拆分给定输入序列。
String[] split(CharSequence input, int limit) 增加参数limit目的在于要指定分割的段数
围绕此模式的匹配拆分给定输入序列。