/*
Eliminar de una cadena en java todos los caracteres que no estén dentro del patrón
https://es.stackoverflow.com/q/113684/127
*/
class Ideone
{
String patron
= "\\d+(?:[.,]\\d+)*|Free"; String regex
= String.
format("(?:(?!%s)(?s:.))*(%s)?", patron, patron
);
return texto.replaceAll(regex, "$1");
}
{
//Pruebas
"AU$26.95 с уч. GST",
"Free с уч. GST",
"#$%&/=123,456,789.01xxxFree Free!!! 3:)"
};
for (String prueba
: pruebas
) { String resultado
= soloNumFree
(prueba
); System.
out.
printf("%-40s --> '%s'%n", prueba, resultado
); }
}
}
LyogCiAgICBFbGltaW5hciBkZSB1bmEgY2FkZW5hIGVuIGphdmEgdG9kb3MgbG9zIGNhcmFjdGVyZXMgcXVlIG5vIGVzdMOpbiBkZW50cm8gZGVsIHBhdHLDs24KICAgIGh0dHBzOi8vZXMuc3RhY2tvdmVyZmxvdy5jb20vcS8xMTM2ODQvMTI3CiovCgpjbGFzcyBJZGVvbmUKewogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgc29sb051bUZyZWUgKFN0cmluZyB0ZXh0bykgewogICAgICAgIFN0cmluZyBwYXRyb24gPSAiXFxkKyg/OlsuLF1cXGQrKSp8RnJlZSI7CiAgICAgICAgU3RyaW5nIHJlZ2V4ID0gU3RyaW5nLmZvcm1hdCgiKD86KD8hJXMpKD9zOi4pKSooJXMpPyIsIHBhdHJvbiwgcGF0cm9uKTsKICAgICAgICAKICAgICAgICByZXR1cm4gdGV4dG8ucmVwbGFjZUFsbChyZWdleCwgIiQxIik7CiAgICB9CiAgICAKICAgIAogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCiAgICB7CiAgICAgICAgLy9QcnVlYmFzCiAgICAgICAgU3RyaW5nW10gcHJ1ZWJhcyA9IHsKICAgICAgICAJICAgICAgICAgICAgICAgICJBVSQyNi45NSDRgSDRg9GHLiBHU1QiLAogICAgICAgIAkgICAgICAgICAgICAgICAgIkZyZWUg0YEg0YPRhy4gR1NUIiwKICAgICAgICAJICAgICAgICAgICAgICAgICIjJCUmLz0xMjMsNDU2LDc4OS4wMXh4eEZyZWUgRnJlZSEhISAzOikiCiAgICAgICAgCSAgICAgICAgICAgICAgIH07CiAgICAgICAgCiAgICAgICAgZm9yIChTdHJpbmcgcHJ1ZWJhOiBwcnVlYmFzKSB7CiAgICAgICAgICAgIFN0cmluZyByZXN1bHRhZG8gPSBzb2xvTnVtRnJlZShwcnVlYmEpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50ZigiJS00MHMgLS0+ICclcyclbiIsIHBydWViYSwgcmVzdWx0YWRvKTsKICAgICAgICB9CiAgICB9Cn0=