跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Java 正则表达式基础与实战:元字符、限定符及 Email 验证

综述由AI生成正则表达式作为字符串模式匹配的关键技术,广泛应用于数据验证与文本处理场景。通过 Java 实战案例,深入解析了元字符集合、限定修饰符及方括号运算规则。针对邮箱格式验证需求,拆解了 \w+@ 及域名后缀匹配逻辑,提供可直接运行的 Judge 类代码,帮助开发者快速理解并掌握正则表达式的核心语法与调试技巧。

云间运维发布于 2026/4/7更新于 2026/5/2110 浏览
Java 正则表达式基础与实战:元字符、限定符及 Email 验证

正则表达式通常用于判断语句中,用来检查某一字符串是否满足特定格式。它包含一些具有特殊意义的字符,称为元字符。例如,\d 表示数字 0~9 中的任何一个。

常用元字符参考

元字符正则写法意义
..任意一个字符
\d\d0~9 的任何一个数字
\D\D非数字字符
\s\s空白字符(如制表符、换行)
\S\S非空白字符
\w\w标识符字符(字母、数字、下划线)
\W\W非标识符字符
\p{Lower}\p{Lower}小写字母 a~z
\p{Upper}\p{Upper}大写字母 A~Z
\p{ASCII}\p{ASCII}ASCII 字符
\p{Alpha}\p{Alpha}字母字符
\p{Digit}\p{Digit}十进制数字
\p{Alnum}\p{Alnum}数字或字母字符
\p{Punct}\p{Punct}标点符号
\p{Graph}\p{Graph}可见字符
\p{Print}\p{Print}可打印字符
\p{Blank}\p{Blank}空格或制表符
\p{Cntrl}\p{Cntrl}控制字符

注意:在正则表达式中,. 代表任何字符。如果想在匹配中使用普通意义的点字符,必须使用转义字符 \。

方括号与组合规则

可以使用方括号括起若干个字符来表示一个元字符,该元字符可代表方括号中的任何一个字符。例如 "[abc]4",这样字符串 a4、b4、c4 都是和正则表达式匹配的字符串。

方括号元字符还支持其他格式:

  • [^456]:代表 4、5、6 之外的任何字符。
  • [a-r]:代表 a~r 中的任何一个字母。
  • [a-zA-Z]:表示任意一个英文字母。
  • [a-e[g-z]]:代表 a~e 或 g~z 中的任何一个字母(并运算)。
  • [a-0&&[def]]:代表字母 d、e、f(交运算)。
  • [a-d&&[^bc]]:代表字母 a、d(差运算)。

限定修饰符

允许使用限定修饰符来限定元字符出现的次数。例如,A* 代表 A 可在字符串中出现 0 次或多次。

限定修饰符意义示例
?0 次或 1 次A?
*0 或多次A*
+1 次或多次A+
{n}正好出现 n 次A{2}
{n,}至少出现 n 次A{3,}
{n,m}出现 n~m 次A{2,6}

实战:验证 E-mail 地址

在项目中创建一个 Judge 类,使用正则表达式来判断几个 E-mail 地址哪一个是合法的。

public class Judge {
    public static void main(String[] args) {
        // 定义要匹配 E-mail 地址的正则表达式
        String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
        
        // 定义要进行验证的字符串
        String str1 = "aaa@";
        String str2 = "aaaaa";
        String str3 = "[email protected]";

        if (str1.matches(regex)) {
            System.out.println(str1 + "是一个合法的 E-mail 地址格式");
        }
        if (str2.matches(regex)) {
            System.out.println(str2 + "是一个合法的 E-mail 地址格式");
        }
        if (str3.matches(regex)) {
            System.out.println(str3 + "是一个合法的 E-mail 地址格式");
        }
    }
}

运行结果:

1111@111ffyu.dfg.com 是一个合法的 E-mail 地址格式

正则表达式分析

通常情况下 E-mail 的格式为 [email protected]。字符 X 表示任意的一个或多个字符,@ 为特有符号,@ 后还有一个或多个字符,之后是 .com,也可能后面还有类似 .cn 的标记。

总结这些特点,可以书写正则表达式 "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}" 来匹配 E-mail 地址。

  • 字符集 \\w 匹配任意单词字符。
  • 符号 + 表示字符可以出现 1 次或多次。
  • 表达式 (\\.\\w{2,3})* 表示形如 .com 格式的字符串可以出现 0 次或多次。
  • 最后的表达式 \\.\\w{2,3} 用于匹配 E-mail 地址中的结尾字符,如 .cn。

实际编写时需注意 Java 字符串转义规则,正则中的反斜杠在 Java 代码中需要写成双反斜杠。

目录

  1. 常用元字符参考
  2. 方括号与组合规则
  3. 限定修饰符
  4. 实战:验证 E-mail 地址
  5. 正则表达式分析
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Windows 本地部署 OpenClaw 飞书机器人指南
  • Java 助力充电桩物联网与新能源深度融合
  • Python 入门指南:初学者友好的编程语言详解
  • Meta-Llama-3-8B-Instruct 本地部署实战:vLLM 结合 Open-WebUI
  • Linux 下基于 C++ 的 UDP 通信与 Socket 编程实战
  • 逻辑回归算法详解:原理、代码与可视化
  • Office Copilot 区域不支持错误的排查与解决方案
  • 直流无刷电机 FOC 控制算法
  • Claude Code 代码审查功能详解:智能识别潜在问题
  • Spring Boot 集成 Eclipse Mosquitto MQTT 实战
  • PAT 1041 考试座位号 Python 解法
  • 企业级私有化 AI 部署:大模型原理与本地智聊机器人实战
  • 5 本豆瓣高分 Python 经典技术书籍
  • HarmonyOS6 RcImage 组件核心架构与状态管理机制
  • Trae x Vizro:低代码构建专业数据可视化仪表板的高效方案
  • Android 广域网 P2P 语音聊天实战:WebRTC 与 NAT 穿透技术解析
  • C++ 多线程同步:原子操作(atomic)实战
  • Java 多线程状态详解:NEW、RUNNABLE、BLOCKED 等六种状态解析
  • DownGit:GitHub 文件夹精准下载工具
  • Pi0 机器人 VLA 大模型在昇腾 A2 平台上的测评与部署

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online