/ / java reemplazar regex a-z0-9 solamente - java, regex

java replace regex a-z0-9 only - java, regex

Me gustaría mostrar solo a-z0-9 en una cadena, y los otros caracteres deben reemplazarse por una cadena nula

String s=this.saveFileName.replaceAll("/[a-z0-9. ]/", "");

Esto no funciona, ¿alguna idea por qué?

Respuestas

13 para la respuesta № 1

Prueba esto:

String s = "abc123ABC!@#$%^;"xyz";
String newString = s.replaceAll("[^a-z0-9]", "");
//newString is now "abc123xyz"

Esto aprovecha el operador de negación (^) en las clases de caracteres que básicamente dice, "empareja todo excepto los siguientes caracteres".

Además, no necesita barras diagonales al definir expresiones regulares de Java.


2 para la respuesta № 2

Usted no necesita estos / /.

Algunos lenguajes como PHP esperan que coloques la expresión regular entre un par de delimitadores, Java no.

Como quieres reemplazar todo lo que no sea a-z0-9 necesitas el regex [^a-z0-9] o alternativamente [^a-z\d]

UN [..] es una clase de char para que coincida con un char que figura en ella. La clase char también puede contener rangos como [a-z] que coincide con una letra minúscula. Ahora un ^ al comienzo de la clase char lo niega, por lo que [^a-z] coincide con cualquier char otro que una letra minúscula.


1 para la respuesta № 3

Lo has probado sin el // ¿marcas?

String s=this.saveFileName.replaceAll("[^a-z0-9]", "");

0 para la respuesta № 4

Este regex parece hacer el truco:

String s="Testing-1.2.3_$".replaceAll("[^a-z0-9. ]", "");

salida:

esting1.2.3

El símbolo ^ niega el conjunto y las barras no son necesarias.