正则表达式概述

正则表达式是一种用于描述字符串模式的工具,它使用特定字符和规则组合来定义字符串的特征。在Java里,正则表达式可用于高效地搜索、匹配、替换和分割字符串。

作用

  • 字符串匹配:可以检验一个字符串是否符合特定的模式,像验证邮箱地址、手机号码等是否合法。
  • 字符串查找:能在一个较长的字符串中找出符合特定模式的子字符串。
  • 字符串替换:把符合特定模式的子字符串替换成其他字符串。
  • 字符串分割:依据特定模式将字符串分割成多个子字符串。

如何使用正则表达式进行字符串匹配和处理

在Java中,java.util.regex包提供了用于处理正则表达式的类,主要有PatternMatcher。下面分别介绍字符串匹配、查找、替换和分割的用法。

字符串匹配

字符串匹配用来判断一个字符串是否符合特定的模式。

import java.util.regex.Pattern;

public class RegexMatchExample {
    public static void main(String[] args) {
        String regex = "\\d{3}-\\d{4}-\\d{4}"; // 匹配格式为 123-4567-8901 的电话号码
        String input = "123-4567-8901";
        boolean isMatch = Pattern.matches(regex, input);
        System.out.println("字符串是否匹配: " + isMatch);
    }
}

字符串查找

字符串查找用于在一个较长的字符串中找出符合特定模式的子字符串。

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

public class RegexFindExample {
    public static void main(String[] args) {
        String regex = "\\b\\w+@\\w+\\.\\w+\\b"; // 匹配邮箱地址
        String input = "我的邮箱是 example@example.com,还有一个备用邮箱 test@test.com";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        while (matcher.find()) {
            System.out.println("找到匹配的邮箱: " + matcher.group());
        }
    }
}

字符串替换

字符串替换是把符合特定模式的子字符串替换成其他字符串。

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

public class RegexReplaceExample {
    public static void main(String[] args) {
        String regex = "\\d+"; // 匹配一个或多个数字
        String input = "我今年 25 岁,身高 180 厘米";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        String result = matcher.replaceAll("XX");
        System.out.println("替换后的字符串: " + result);
    }
}

字符串分割

字符串分割是依据特定模式将字符串分割成多个子字符串。

import java.util.Arrays;

public class RegexSplitExample {
    public static void main(String[] args) {
        String regex = "\\s+"; // 匹配一个或多个空白字符
        String input = "Hello  World Java";
        String[] parts = input.split(regex);
        System.out.println("分割后的字符串数组: " + Arrays.toString(parts));
    }
}

以上示例展示了Java中使用正则表达式进行字符串匹配、查找、替换和分割的基本方法。通过PatternMatcher类,你可以灵活运用正则表达式处理各种字符串操作。