In Java, the inability to directly obtain an array of regex matches may leave you puzzled. This guide addresses this challenge, providing solutions to capture all strings that conform to a regular expression.
The key to retrieving these matches lies in utilizing a matcher, which iteratively locates occurrences:
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()); }
After populating allMatches with the matches, you can convert it to an array if necessary:
allMatches.toArray(new String[0]);
Alternatively, you may consider using MatchResult to simplify matching operations. A helper function like allMatches:
public static Iterable<MatchResult> allMatches( final Pattern p, final CharSequence input) { ... }
allows you to iterate over matches, such as:
for (MatchResult match : allMatches(Pattern.compile("[abc]"), "abracadabra")) { System.out.println(match.group() + " at " + match.start()); }
Providing the output:
a at 0 b at 1 a at 3 c at 4 a at 5 a at 7 b at 8 a at 10
The above is the detailed content of How Can I Extract All Regex Matches into an Array in Java?. For more information, please follow other related articles on the PHP Chinese website!