> Matches com dolar ($) String str = "Meta 20 - Financiamento da Educação"; String regex = "(Meta +?[0-9]{1,2} +?- +?)(.*)"; //Para dar match (para o replaceAll nao precisaria), coloque sempre (.*) para representar a continuacao da string, seja antes ou depois do regex, ficando: (.*)REGEX(.*). Mas como nesse caso a string testada jamais terá texto antes do regex, nao ha necessidade de colocar (.*) no início. Boolean Match = str.matches(regex); //Boolean de Match str = str.replaceAll(regex,"$1$2"); //Substituir out.print(str);