正则表达式
正则表达式(Regular Expression,简称Regex或RegExp)是一种字符串处理的工具,它用于匹配、查找、替换 和提取文本中的模式。
正则表达式由一些特殊字符和普通字符组成,可以表示一类字符串的通用规律。例如,正则表达式\d{3}-\d{4}可 以匹配形如"123-4567"的字符串,其中\d表示数字字符,{3}表示连续匹配三次,-表示匹配一个横线,\d{4}表示 连续匹配四次数字字符。以下是一些常用的正则表达式规则:
普通字符
特殊字符
非打印字符
限定符
定位符
在Java中,正则表达式的处理需要使用Java的正则表达式API,主要包括Pattern和Matcher两个类。Pattern类表 示正则表达式的编译结果,Matcher类则用于在字符串中查找和匹配模式。以下是Java中常用的正则表达式方 法:
Pattern.compile(String regex)
public static void main(String[] args) {
String regex = "\\d+"; // 匹配数字
Pattern pattern = Pattern.compile(regex); // 将正则表达式编译成模式
String text = "hello 123 world";
Matcher matcher = pattern.matcher(text); // 创建匹配器对象
while (matcher.find()) {
// 输出匹配结果
System.out.println(text + "匹配结果是:" + matcher.group());
}
}
该方法用于判断给定字符串是否与正则表达式匹配,返回一个布尔值
matcher.matches()
public static void main(String[] args) {
String regex = "\\d+"; // 匹配数字
Pattern pattern = Pattern.compile(regex); // 将正则表达式编译成模式
String text = "123456";
Matcher matcher = pattern.matcher(text); // 创建匹配器对象
boolean isMatched = matcher.matches(); // 尝试将整个输入序列与该模式匹配
System.out.println(isMatched); // 输出匹配结果,true
}
matcher.find()
public static void main(String[] args) {
Pattern p = Pattern.compile("\\d\\d\\d");
Matcher m = p.matcher("a123b");
System.out.println(m.find()); // 输出结果true
}
matcher.replaceAll(String replacement)
public static void main(String[] args) {
// 匹配数字
String regex = "\\d+";
// 将正则表达式编译成模式
Pattern pattern = Pattern.compile(regex);
String text = "hello 123 world 456";
// 创建匹配器对象
Matcher matcher = pattern.matcher(text);
// 将匹配的子序列替换为"###"
String replacedText = matcher.replaceAll("###");
// 输出替换后的结果字符串 hello ### world ###
System.out.println(replacedText);
}