Java 正则匹配括号中的内容

在日常的编程工作中,我们经常会遇到需要从字符串中提取特定格式的内容的情况。其中一种常见的情形就是需要匹配括号中的内容。在 Java 中,可以利用正则表达式来实现这一需求。本文将介绍如何使用 Java 中的正则表达式来匹配括号中的内容,并通过代码示例来演示具体的实现方法。

正则表达式匹配括号中的内容

在正则表达式中,括号是一种元字符,用于分组匹配。如果我们想要匹配括号中的内容,可以使用一对小括号 () 来表示匹配的内容。例如,如果我们有一个字符串 "Hello (World)",想要匹配括号中的内容 "World",可以使用正则表达式 \((.*?)\) 来实现。

在这个正则表达式中,\(\) 分别匹配左右小括号,. 表示匹配任意字符(除了换行符),* 表示匹配前面的字符零次或多次,? 表示非贪婪匹配,最终匹配结果会保存在一个分组中。

代码示例

下面是一个简单的 Java 程序,演示如何使用正则表达式匹配括号中的内容:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String input = "Hello (World)";
        Pattern pattern = Pattern.compile("\\((.*?)\\)");
        Matcher matcher = pattern.matcher(input);

        while (matcher.find()) {
            System.out.println("Matched: " + matcher.group(1));
        }
    }
}

在这段代码中,我们首先定义了一个字符串 input,其中包含了一个带有括号的内容。然后使用 Pattern 类编译了一个正则表达式 \((.*?)\),并通过 Matcher 类找到匹配的内容,并输出到控制台。

序列图

下面是一个使用 mermaid 语法绘制的序列图,展示了上述 Java 程序中的流程:

sequenceDiagram
    participant User
    participant JavaCode
    User->>JavaCode: 提供带有括号的字符串
    JavaCode->>JavaCode: 编译正则表达式
    JavaCode->>JavaCode: 匹配括号中的内容
    JavaCode->>User: 输出匹配结果

结论

通过本文的介绍,我们了解了如何在 Java 中使用正则表达式来匹配括号中的内容。正则表达式是一种强大的文本处理工具,在处理字符串时非常实用。通过灵活运用正则表达式,我们可以更高效地实现字符串内容的提取和匹配。希望本文能对你有所帮助,谢谢阅读!