The regular expression "(?<!\\d)digit(?!\\d)" matches the digit specified.
The replaceAll() method accepts two strings: a regular expression pattern and, the replacement string and replaces the pattern with the specified string.
Therefore, to remove all numbers in a string except 1 and 2, replace the regular expressions 1 and 2 with one and two respectively and replace all the other digits with an empty string.
Example
import java.util.Scanner; public class RegexExample { public static void main(String args[]) { //Reading String from user System.out.println("Enter a String"); Scanner sc = new Scanner(System.in); String input = sc.nextLine(); //Regular expression to match the digit 1 String regex1 = "(?<!\\d)1(?!\\d)"; //Regular expression to match the digit 2 String regex2 = "(?<!\\d)2(?!\\d)"; //Replacing all space characters with single space String result = input.replaceAll(regex1, "one") .replaceAll(regex2, "two") .replaceAll("\\s*\\d+", ""); System.out.print("Result: "+result); } }
Output
Enter a String sample 1 2 3 4 5 6 Result: sample one two