首页 >Java >java教程 >如何在 Java 中将所有正则表达式匹配项提取到数组中?

如何在 Java 中将所有正则表达式匹配项提取到数组中?

Linda Hamilton
Linda Hamilton原创
2024-12-08 19:04:141064浏览

How Can I Extract All Regex Matches into an Array in Java?

在 Java 中使用正则表达式将字符串匹配提取到数组中

在 Java 中,无法直接获取正则表达式匹配数组可能会让您感到困惑。本指南解决了这一挑战,提供了捕获所有符合正则表达式的字符串的解决方案。

检索这些匹配项的关键在于利用匹配器,它迭代地定位出现的位置:

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

List<String> allMatches = new ArrayList<>();
Matcher m = Pattern.compile("your regex expression here")
    .matcher(yourStringHere);
while (m.find()) {
   allMatches.add(m.group());
}

用匹配项填充 allMatches 后,您可以将其转换为数组,如果必要:

allMatches.toArray(new String[0]);

或者,您可以考虑使用 MatchResult 来简化匹配操作。像 allMatches:

public static Iterable<MatchResult> allMatches(
      final Pattern p, final CharSequence input) {
  ...
}

这样的辅助函数允许您迭代匹配,例如:

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

提供输出:

a at 0
b at 1
a at 3
c at 4
a at 5
a at 7
b at 8
a at 10

以上是如何在 Java 中将所有正则表达式匹配项提取到数组中?的详细内容。更多信息请关注PHP中文网其他相关文章!

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