operaciones manejo hacer espacios espacio eliminar con como caracteres cadenas blanco java regex non-alphanumeric

manejo - operaciones con cadenas en java



Reemplazar todos los caracteres no alfanuméricos con cadenas vacías (9)

Intenté usar esto pero no funcionó-

return value.replaceAll("/[^A-Za-z0-9 ]/", "");


Debe tener en cuenta que [^a-zA-Z] reemplazará los caracteres que no estén en el rango de caracteres AZ / az. Eso significa caracteres especiales como é , ß etc. o caracteres cirílicos, y tales serán eliminados.

Si el reemplazo de estos caracteres no es deseado, use clases de caracteres predefinidas en su lugar:

someString.replaceAll("[^//p{IsAlphabetic}^//p{IsDigit}]", "");

PS: /p{Alnum} no logra este efecto, actúa igual que [A-Za-z0-9] .


Hice este método para crear nombres de archivo:

public static String safeChar(String input) { char[] allowed = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_".toCharArray(); char[] charArray = input.toString().toCharArray(); StringBuilder result = new StringBuilder(); for (char c : charArray) { for (char a : allowed) { if(c==a) result.append(a); } } return result.toString(); }


Las expresiones regulares de Java no requieren que coloque una barra inclinada ( / ) o cualquier otro delimitador alrededor de la expresión regular, a diferencia de otros lenguajes como Perl, por ejemplo.


Método simple:

public boolean isBlank(String value) { return (value == null || value.equals("") || value.equals("null") || value.trim().equals("")); } public String normalizeOnlyLettersNumbers(String str) { if (!isBlank(str)) { return str.replaceAll("[^//p{L}//p{Nd}]+", ""); } else { return ""; } }


También puedes probar esta expresión regular más simple:

str = str.replaceAll("//P{Alnum}", "");


Tratar

return value.replaceAll("[^A-Za-z0-9]", "");

o

return value.replaceAll("[//W]|_", "");


Utilice [^A-Za-z0-9] .

Nota: eliminó el espacio ya que normalmente no se considera alfanumérico.



return value.replaceAll("[^A-Za-z0-9 ]", "");

Esto dejará espacios intactos. Supongo que eso es lo que quieres. De lo contrario, elimine el espacio de la expresión regular.