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