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 正则表达式教程](
结束