一.
匹配四个数字连在一起的内容:
String content ="Java平台由Java虚拟机(Java Virtual Mach+" +
"ine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标0000准接口,可分为基本部分877和扩9877展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.8,最近版本为Java19";
//匹配所有四个数字
//1.\\d表示一个任意的数字
String regStr = "\\d\\d\\d\\d";
//2.创建模式对象,即正则表达式对象
Pattern pattern = Pattern.compile(regStr);
//3.创建匹配器matcher,按照正则表达式去匹配content字符串
Matcher matcher = pattern.matcher(content);
//开始匹配
while(matcher.find()){
//如果正则表达式有()分组,匹配的规则如下
System.out.println("找到"+matcher.group(0));//匹配的字符串
System.out.println("找到"+matcher.group(1));//匹配到的子字符串的第一组
System.out.println("找到"+matcher.group(2));//子字符串的第二组
}
当在匹配一些特殊字符的时候,需要使用到转义字符
字符匹配符:
选择匹配符:
正则限定符:
正则定位符:
pattern类:
反向引用:
//匹配两个连续的相同数字:(\d)\1
//匹配五个连续的相同数字:(\d)\1{4}
//要匹配5225,1551这种数字:(\d)(\d)\2\1
正则-结巴去重,
public class RegExp13 {
public static void main(String[] args) {
String content = "我.....我要....学学学学...编程java";
//1.去掉.
Pattern pattern = Pattern.compile("\\.");
Matcher matcher = pattern.matcher(content);
content = matcher.replaceAll("");
System.out.println(content);
//2.去掉重复的字,正则表达式变化,需要重置matcher
pattern = Pattern.compile("(.)\\1+");
matcher = pattern.matcher(content);
//使用反向引用$1来替换匹配的内容
content = matcher.replaceAll("$1");
System.out.println(content);
}
}
替换功能: