首页 >Java >java教程 >如何使用 Java 正则表达式从字符串中检索匹配项数组?

如何使用 Java 正则表达式从字符串中检索匹配项数组?

Linda Hamilton
Linda Hamilton原创
2024-11-24 11:59:12201浏览

How to Retrieve and Array of Matches from a String Using Java Regular Expressions?

在 Java 中使用正则表达式检索匹配

在 Java 中使用正则表达式从给定字符串获取匹配数组涉及创建匹配器和迭代匹配。

使用Matcher

使用 Pattern 类的编译方法创建一个 Matcher 对象:

Matcher m = Pattern.compile("regex_expression").matcher(input_string);

迭代匹配

使用 find Matcher 的迭代方法匹配:

List<String> allMatches = new ArrayList<>();
while (m.find()) {
  allMatches.add(m.group());
}

转换为数组

如果您需要匹配数组,请使用 toArray 方法:

String[] matchesArray = allMatches.toArray(new String[0]);

MatchResult 的增强方法 (Java >= 9)

在 Java 9 及更高版本中,您可以在 Matcher 上使用 toMatchResult 方法来创建 MatchResult 对象。这提供了创建惰性迭代器以有效循环匹配的方法:

for (MatchResult match : MatchResult.findAll(p, input)) {
  // Use match information without advancing iteration...
}

例如,此代码使用 allMatches 辅助方法来迭代匹配,打印它们的组和位置:

for (MatchResult match : allMatches(Pattern.compile("[abc]"), "abracadabra")) {
  System.out.println(match.group() + " at " + match.start());
}

以上是如何使用 Java 正则表达式从字符串中检索匹配项数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn