Logo Wand.Tools

正则表达式生成器

智能生成和解释正则表达式,支持各种常见模式匹配

Java 正则表达式 (Regex) 教程

Java 正则表达式完整教程(含示例)| Java Regex 教程详解

Java 正则表达式(Regex)是文本处理的强大工具,广泛用于字符串匹配、验证、替换等操作。本文为你呈现最实用的 Java 正则表达式教程,附带详细代码示例,助你掌握 Java 正则技能,轻松应对各种开发场景。


✅ 正则表达式基础语法

表达式 描述
. 匹配除换行符以外的任意字符
^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
* 匹配前一个元素 0 次或多次
+ 匹配前一个元素 1 次或多次
? 匹配前一个元素 0 次或 1 次
[] 匹配括号内的任意字符
[^^] 匹配不在括号内的任意字符
{n} 正好匹配 n 次
{n,} 至少匹配 n 次
{n,m} 匹配 n 到 m 次
\d 匹配一个数字字符,等价于 [0-9]
\w 匹配字母或数字或下划线,等价于 [a-zA-Z_0-9]
\s 匹配任何空白字符
` `

🚀 Java 中使用正则表达式的关键类

  • java.util.regex.Pattern
  • java.util.regex.Matcher

📌 基本示例:检测字符串是否匹配正则

import java.util.regex.*;

public class RegexExample1 {
    public static void main(String[] args) {
        String pattern = "^[a-zA-Z0-9]{6,12}$";
        String input = "abc12345";

        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(input);

        if (m.matches()) {
            System.out.println("匹配成功");
        } else {
            System.out.println("匹配失败");
        }
    }
}

🧩 示例:提取所有邮箱地址

import java.util.regex.*;

public class RegexExample2 {
    public static void main(String[] args) {
        String text = "联系邮箱:[email protected], [email protected]";
        String regex = "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}";

        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(text);

        while (m.find()) {
            System.out.println("找到邮箱: " + m.group());
        }
    }
}

🔁 示例:替换所有电话号码格式

import java.util.regex.*;

public class RegexExample3 {
    public static void main(String[] args) {
        String input = "客户电话:13812345678,备用号码:13987654321";
        String regex = "1[3-9]\\d{9}";

        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(input);

        String result = m.replaceAll("***保密***");
        System.out.println(result);
    }
}

🔍 示例:验证常用格式(手机号、邮箱、身份证)

public class RegexValidation {
    public static void main(String[] args) {
        String phone = "13812345678";
        String email = "[email protected]";
        String idCard = "110101199003077777";

        System.out.println(phone.matches("^1[3-9]\\d{9}$"));          // true
        System.out.println(email.matches("^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$")); // true
        System.out.println(idCard.matches("^\\d{17}[\\dXx]$"));       // true
    }
}

🔐 常用正则表达式模板(推荐收藏)

  • 手机号验证:^1[3-9]\\d{9}$
  • 邮箱验证:^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$
  • 身份证号验证:^\\d{17}[\\dXx]$
  • 密码强度检测:^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$
  • IP 地址验证:^(\\d{1,3}\\.){3}\\d{1,3}$
  • URL 地址验证:^https?://[\\w.-]+(?:\\.[\\w\\.-]+)+[/#?]?.*$

📈 Java 正则表达式常见应用场景

  • 表单验证(手机号、邮箱、密码)
  • 文本内容提取(日志分析、邮件地址提取)
  • 敏感信息处理(如替换身份证、电话等)
  • 批量字符串替换与清洗
  • 数据格式标准化处理