在Java开发中,经常需要对字符串进行查找、替换或验证操作,比如验证邮箱格式、提取手机号、判断是否为数字等。这时候,Java正则表达式就派上用场了。本教程将带你从零开始,轻松掌握Java中的字符串匹配技术,即使你是编程小白也能看懂!
正则表达式(Regular Expression,简称 regex)是一种用于描述字符串模式的规则。通过这些规则,我们可以快速判断一个字符串是否符合特定格式,或者从中提取所需信息。
Java 提供了两个核心类来处理正则表达式:java.util.regex.Pattern 和 java.util.regex.Matcher。其中:
下面是一个简单的例子,判断一个字符串是否只包含数字:
import java.util.regex.Pattern;public class RegexExample { public static void main(String[] args) { String input = "12345"; // 定义正则表达式:\d+ 表示一个或多个数字 String regex = "\\d+"; // 编译正则表达式 Pattern pattern = Pattern.compile(regex); // 判断是否完全匹配 boolean isMatch = pattern.matcher(input).matches(); System.out.println("输入是数字吗?" + isMatch); // 输出:true }} 注意:在Java字符串中,反斜杠 \ 是转义字符,所以写 \d 要写成 \\d。
| 符号 | 含义 |
|---|---|
| . | 匹配任意单个字符(除换行符) |
| \d | 匹配数字 [0-9] |
| \w | 匹配字母、数字或下划线 |
| + | 前面的元素出现一次或多次 |
| * | 前面的元素出现零次或多次 |
| ? | 前面的元素出现零次或一次 |
下面使用 Java字符串匹配 技术验证一个常见的邮箱格式:
import java.util.regex.Pattern;public class EmailValidator { public static void main(String[] args) { String email = "example@domain.com"; // 简化的邮箱正则表达式 String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$"; boolean isValid = Pattern.matches(emailRegex, email); System.out.println("邮箱格式是否有效?" + isValid); // 输出:true }} 这里我们直接使用了 Pattern.matches() 静态方法,它内部会自动创建 Pattern 和 Matcher 对象,适合一次性匹配场景。
如果你想从一段文本中提取所有手机号,就需要用到 Matcher 的 find() 方法:
import java.util.regex.Matcher;import java.util.regex.Pattern;public class PhoneExtractor { public static void main(String[] args) { String text = "请联系我:13812345678 或 15987654321,谢谢!"; String phoneRegex = "1[3-9]\\d{9}"; // 匹配中国大陆手机号 Pattern pattern = Pattern.compile(phoneRegex); Matcher matcher = pattern.matcher(text); while (matcher.find()) { System.out.println("找到手机号:" + matcher.group()); } // 输出: // 找到手机号:13812345678 // 找到手机号:15987654321 }} 通过本教程,你已经掌握了 Java正则表达式 的基本用法,了解了 Pattern类 和 Matcher类 的核心作用,并能完成常见的 Java字符串匹配 任务。正则表达式虽然初学有点抽象,但多练习几个例子后就会变得得心应手!
提示:可以使用在线正则测试工具(如 regex101.com)先验证你的正则表达式,再写入 Java 代码中。
本文由主机测评网于2025-12-02发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025121925.html