Java does not provide any method to retrieve the list of all matches we need to use Lists and add the results to it in the while loop.
Example
import java.util.ArrayList; import java.util.Iterator; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ListOfMatches{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter input text: "); String input = sc.nextLine(); String regex = "\\d+"; //Creating a pattern object Pattern pattern = Pattern.compile(regex); ArrayList list = new ArrayList(); //Matching the compiled pattern in the String Matcher matcher = pattern.matcher(input); while (matcher.find()) { list.add(matcher.group()); } Iterator it = list.iterator(); System.out.println("List of matches: "); while(it.hasNext()){ System.out.println(it.next()); } } }
Output
Enter input text: sample 1432 text 53 with 363 numbers List of matches: 1432 53 363