📜  Java中的正则表达式(1)

📅  最后修改于: 2023-12-03 15:02:02.885000             🧑  作者: Mango

Java中的正则表达式

正则表达式是一种通用的文本模式匹配工具,它可以用来进行文本处理、字符串匹配、数据提取等等操作。在Java中,使用java.util.regex包可以进行正则表达式的处理。

正则表达式的语法规则

Java中正则表达式的语法规则如下表所示。

| 表达式元字符 | 描述 | | ------------ | ------------------------------------------------------ | | . | 匹配除了换行符以外的任意字符 | | \d | 匹配数字 | | \D | 匹配非数字 | | \s | 匹配空白字符,包括空格、制表符、换行符等 | | \S | 匹配非空白字符 | | \w | 匹配字母、数字、下划线 | | \W | 匹配非字母、数字、下划线的字符 | | ^ | 匹配行的起始位置 | | $ | 匹配行的结束位置 | | * | 匹配前面的字符0次或多次 | | + | 匹配前面的字符1次或多次 | | ? | 匹配前面的字符0次或1次 | | {n} | 匹配前面的字符n次 | | {n,m} | 最少匹配n次,最多匹配m次 | | {n,} | 匹配前面的字符至少n次 | | [] | 匹配括号中任意一个字符 | | | | 匹配两个字符之中的任意一个字符,相当于逻辑上的"或"操作 | | () | 分组,在捕获时提供子正则表达式的内容 | | \ | 转义字符,用于匹配元字符本身 |

Java中常用的正则表达式方法

Java中常用的正则表达式方法如下表所示。

| 方法 | 描述 | | ------------------------- | -------------------------------------------------------------------- | | boolean matches(String regex) | 测试字符串是否符合正则表达式规则 | | String[] split(String regex) | 使用正则表达式将字符串拆分为数组 | | String replaceAll(String regex, String replacement) | 使用正则表达式替换字符串 | | Pattern compile(String regex) | compile方法用于将正则表达式编译成Pattern对象 | | Matcher matcher(String regex) | matcher方法用于根据正则表达式创建Matcher对象 | | String group() | 返回最后一个匹配的子序列 | | boolean find() | 查找下一个匹配的子序列 | | boolean find(int start) | 在指定位置开始查找下一个匹配的子序列 | | boolean matches() | 判断整个字符串是否匹配正则表达式 | | int start() | 返回最后一个匹配的子序列的起始位置 | | int end() | 返回最后一个匹配的子序列的结束位置 | | String replaceFirst(String regex, String replacement) | 使用正则表达式替换第一个匹配的子串 | | int groupCount() | 返回匹配的子串数量 | | Pattern pattern() | 返回此Matcher对象正在使用的Pattern对象 |

Java中正则表达式的实例

下面是使用Java中正则表达式进行匹配的一些实例。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {
    public static void main(String[] args) {
        String s = "Hello, world!";
        // 匹配,返回true
        System.out.println(s.matches("\\w+, \\w+\\!"));
        // 替换,输出"Hello Java!"
        System.out.println(s.replaceAll("world", "Java"));
        // 查找子串并输出,输出"world"
        Pattern pattern = Pattern.compile("\\b(\\w+)\\b");
        Matcher matcher = pattern.matcher(s);
        while (matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }
}

以上就是Java中正则表达式的基本介绍。