在Java中,Matcher类用于在给定输入字符串中进行正则表达式匹配,并且可以使用分组功能来捕获匹配的部分。下面是一个简单的示例来展示如何使用Matcher的分组功能:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String text = "Hello, my email is john.doe@example.com"; Pattern pattern = Pattern.compile("([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+)\\.([a-zA-Z]{2,6})"); Matcher matcher = pattern.matcher(text); if (matcher.find()) { String email = matcher.group(0); // 整个匹配的字符串 String username = matcher.group(1); // 第一个分组 - 用户名部分 String domain = matcher.group(2); // 第二个分组 - 域名部分 String tld = matcher.group(3); // 第三个分组 - 顶级域名部分 System.out.println("Email: " + email); System.out.println("Username: " + username); System.out.println("Domain: " + domain); System.out.println("Top-Level Domain: " + tld); } } }
在上面的示例中,我们首先编译了一个正则表达式模式,该模式用于匹配一个简单的电子邮件地址。然后,我们使用Matcher类的group()方法来捕获匹配的不同组件。在这个例子中,我们使用了三个分组来捕获电子邮件地址的用户名、域名和顶级域名部分。
当我们运行这段代码时,输出将打印出匹配的电子邮件地址及其各个部分:
Email: john.doe@example.com Username: john.doe Domain: example Top-Level Domain: com