English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

How to extract numbers from a string using regular expressions?

You can use any of the following regular expressions to match numbers in the given string-

\"\\d+"
Or,
"([0-9]+"

Example1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExtractingDigits {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter sample text:");
      String data = sc.nextLine();
      //Regular expression to match numbers in the string
      String regex = "\\d+);
      //Create a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Create a Matcher object
      Matcher matcher = pattern.matcher(data);
      System.out.println("Digits in the given string are: ");
      while(matcher.find()) {
         System.out.print(matcher.group())+"");
      }
   }
}

Output Result

Enter sample text:
this is a sample 23 text 46 with 11223 numbers in it
Digits in the given string are:
23 46 11223

Example2

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Just {
   public static void main(String[] args) {
      String data = "abc12def334hjdsk7438dbds3y388);
      //Regular expression to number
      String regex = "([0-9]+);
      //Create a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Create a Matcher object
      Matcher matcher = pattern.matcher(data);
      System.out.println("Digits in the given string are: ");
      while(matcher.find()) {
         System.out.print(matcher.group())+"");
      }
   }
}

Output Result

Digits in the given string are:
12 334 7438 3 388