Java 正则表达式匹配括号对

在使用正则表达式对文本进行匹配时,有时候需要匹配括号对,例如匹配括号内的内容或者检查括号是否正确配对。在 Java 中,我们可以使用正则表达式来实现这个功能。

匹配括号对的正则表达式

在正则表达式中,我们可以使用 () 来匹配括号对。下面是一个简单的例子,用于匹配小括号内的内容:

String input = "Hello (World)";
Pattern pattern = Pattern.compile("\\((.*?)\\)");
Matcher matcher = pattern.matcher(input);

while (matcher.find()) {
    System.out.println(matcher.group(1));
}

在这个例子中,我们使用了 \\((.*?)\\) 这个正则表达式来匹配小括号内的内容。其中:

  • \\( 匹配一个左小括号 "("
  • (.*?) 匹配任意字符,非贪婪模式
  • \\) 匹配一个右小括号 ")"

matcher.find() 循环中,我们可以通过 matcher.group(1) 来获取匹配到的内容,即括号内的内容。

检查括号是否正确配对

除了匹配括号内的内容,有时候也需要检查括号是否正确配对。我们可以利用栈的数据结构来实现这个功能。下面是一个示例代码:

public boolean isValidParentheses(String s) {
    Stack<Character> stack = new Stack<>();

    for (char c : s.toCharArray()) {
        if (c == '(') {
            stack.push(')');
        } else if (c == '[') {
            stack.push(']');
        } else if (c == '{') {
            stack.push('}');
        } else if (stack.isEmpty() || stack.pop() != c) {
            return false;
        }
    }

    return stack.isEmpty();
}

在这个例子中,我们遍历输入字符串 s 中的每个字符,如果是左括号则将对应的右括号入栈,如果是右括号则弹出栈顶元素进行匹配。最后检查栈是否为空,即可判断括号是否正确配对。

总结

通过使用正则表达式和栈来匹配和检查括号对,我们可以方便地处理文本中的括号相关问题。在实际开发中,这些技巧可以帮助我们简化代码逻辑,提高效率。

希望本文对你有所帮助,谢谢阅读!

参考链接:

  • [Java 正则表达式教程](

结束