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

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

Linda Hamilton
发布: 2024-12-08 19:04:14
原创
1007 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板