在 Java 中,使用正则表达式的 matches
方法来匹配括号对是一个常见的任务。我将为你提供两种常见的实现方式,一种是使用纯 Java 代码,另一种是使用第三方库 Apache Commons Lang 的工具类。以下是详细的步骤和示例代码:
步骤流程:
Pattern
和 Matcher
类来进行匹配。Pattern
编译正则表达式,而 Matcher
执行实际的匹配操作。Matcher
的 matches()
方法来检查字符串是否与正则表达式匹配。示例代码:
import java.util.regex.*;
public class BracketMatcher {
public static void main(String[] args) {
String input = "(a + b) * (c - d)";
// 步骤1:创建正则表达式
String regex = "\\([^()]*\\)";
// 步骤2:编译正则表达式
Pattern pattern = Pattern.compile(regex);
// 步骤3:执行匹配操作
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println("Match found: " + matcher.group());
}
}
}
步骤流程:
StringUtils
类的 substringBetween()
方法来查找括号对。Maven 依赖:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
Gradle 依赖:
implementation 'org.apache.commons:commons-lang3:3.12.0'
示例代码:
import org.apache.commons.lang3.StringUtils;
public class BracketMatcher {
public static void main(String[] args) {
String input = "(a + b) * (c - d)";
// 使用StringUtils的substringBetween方法来查找括号对
String[] matches = StringUtils.substringsBetween(input, "(", ")");
if (matches != null) {
for (String match : matches) {
System.out.println("Match found: " + match);
}
}
}
}
这两种方式都可以用来匹配括号对,你可以根据实际情况选择其中一种实现方式。第二种方式使用了 Apache Commons Lang 库,可以简化代码,但需要添加额外的依赖。