java手机号、邮箱、日期正则表达式实例代码

 更新时间:2026年01月07日 08:22:11   作者:Cloud_.  
在Java编程领域中,正则表达式被视为一种高效的文本处理手段,经常被应用于检测字符串是否符合特定的格式要求,这篇文章主要介绍了java手机号、邮箱、日期正则表达式的相关资料,需要的朋友可以参考下

Java正则核心API

Java中用 java.util.regex 包的两个类:

  1. Pattern:编译正则表达式
  2. Matcher:执行匹配操作

1. 验证手机号

String regex = "1[3-9]\\d{9}";
boolean isValid = "18812345678".matches(regex); // true

2. 提取邮箱

String text = "联系我:admin@test.com 或 user@qq.com";
Pattern pattern = Pattern.compile("\\w+@\\w+\\.\\w+");
Matcher matcher = pattern.matcher(text);
while(matcher.find()) {
    System.out.println(matcher.group()); // 输出两个邮箱
}

3. 替换敏感信息

String phone = "手机号:18812345678";
String masked = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
// 结果:手机号:188****5678

5个必会语法(附Java代码)

1. 基础匹配

符号说明Java示例匹配结果
\d数字"a\\d"a1, a9
\w字母数字下划线"\\w+"hello, user1
.任意字符"a.c"abc, a@c
^开头"^Java"Java真好用
$结尾"end$"这是end

2. 量词(控制次数)

符号说明示例匹配内容
?0或1次"a?"“”, a
+1次或多次"\\d+"1, 123
*0次或多次"a*"“”, aaaa
{n}精确n次"\\d{4}"2023

3. 字符集合

// 匹配元音字母
Pattern.compile("[aeiou]");    // 匹配 a, e, i 等
// 匹配非数字
Pattern.compile("[^0-9]");     // 匹配 a, @, # 等

4. 分组提取

String text = "电话:188-1234-5678";
Pattern pattern = Pattern.compile("(\\d{3})-(\\d{4})-(\\d{4})");
Matcher matcher = pattern.matcher(text);
if(matcher.find()) {
    System.out.println(matcher.group(1)); // 188
    System.out.println(matcher.group(2)); // 1234
    System.out.println(matcher.group(3)); // 5678
}

5. 贪婪 vs 非贪婪

// 贪婪模式(默认)
Pattern.compile("a.*b").matcher("aXXXbYYYb").find(); // 匹配整个字符串

// 非贪婪模式(加?)
Pattern.compile("a.*?b").matcher("aXXXbYYYb").find(); // 只匹配aXXXb

避坑

  1. 转义问题:Java中 \ 要写两次

    // 错误写法:Pattern.compile("\d+"); 
    // 正确写法:
    Pattern.compile("\\d+");
    
  2. 性能优化:复用 Pattern 对象

    // 不要每次编译(低效):
    for(...) {
        Pattern.matches(regex, text); 
    }
    
    // 正确做法:
    Pattern pattern = Pattern.compile(regex);
    for(...) {
        pattern.matcher(text).matches();
    }
    
  3. 边界检查:用 ^$ 严格匹配

    // 可能意外匹配子串:
    "123abc".matches("\\d+"); // false(正确)
    "123".matches("\\d+");    // true
    
    // 错误示例:没有用^$导致误匹配
    "a1b2".matches("\\d+");   // false(正确)
    

总结 

到此这篇关于java手机号、邮箱、日期正则表达式的文章就介绍到这了,更多相关java手机号、邮箱、日期正则表达式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot中处理日期的两种方式小结

    SpringBoot中处理日期的两种方式小结

    本文主要介绍了SpringBoot中处理日期的两种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • JAVA监控JMX的使用

    JAVA监控JMX的使用

    Java Management Extensions(JMX)提供了一种标准化的方法来管理和监控Java应用程序,为Java应用提供了一种高效、一致的管理方式,本文就来介绍一下JMX的使用,感兴趣的可以了解一下
    2024-10-10
  • SpringBoot 使用 Ehcache 作为缓存的操作方法

    SpringBoot 使用 Ehcache 作为缓存的操作方法

    这篇文章主要介绍了SpringBoot 如何使用 Ehcache 作为缓存,我们通过添加 Ehcache 依赖、创建 Ehcache 配置文件并在 Spring Boot 应用程序的配置文件中启用 Ehcache 缓存,来配置 Ehcache 缓存,需要的朋友可以参考下
    2023-06-06
  • IDEA中设置Tab健为4个空格的方法

    IDEA中设置Tab健为4个空格的方法

    这篇文章给大家介绍了代码缩进用空格还是Tab?(IDEA中设置Tab健为4个空格)的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-03-03
  • Java基础之隐式转换vs强制转换

    Java基础之隐式转换vs强制转换

    这篇文章主要介绍了Java基础之隐式转换vs强制转换的相关资料,需要的朋友可以参考下
    2015-12-12
  • Quartz+Spring Boot实现动态管理定时任务

    Quartz+Spring Boot实现动态管理定时任务

    最近做项目遇到动态管理定时任务的需求,刚拿到这个需求还真不知道从哪下手,经过一番思考,终于找出实现思路,接下来通过本文给大家介绍了Quartz+Spring Boot实现动态管理定时任务的相关知识,需要的朋友可以参考下
    2018-09-09
  • Java文件基本操作总结

    Java文件基本操作总结

    今天给大家带来的是关于Java基础的相关知识,文章围绕着Java文件操作展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Java Apollo是如何实现配置更新的

    Java Apollo是如何实现配置更新的

    这篇文章主要介绍了Java Apollo是如何实现配置更新的,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • Java枚举(enum) 详解7种常见的用法

    Java枚举(enum) 详解7种常见的用法

    这篇文章主要介绍了Java枚举(enum) 详解7种常见的用法,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • JavaSE实现电影院系统

    JavaSE实现电影院系统

    这篇文章主要为大家详细介绍了JavaSE实现电影院系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08

最新评论