Intenté usar esto pero no funcionó
return value.replaceAll("/[^A-Za-z0-9 ]/", "");
java
regex
non-alphanumeric
Alex Gomes
fuente
fuente
Respuestas:
Uso
[^A-Za-z0-9]
.Nota: se eliminó el espacio, ya que eso no suele considerarse alfanumérico.
fuente
Tratar
o
fuente
return value.replaceAll("\\W", "");
Debe tener en cuenta que
[^a-zA-Z]
reemplazará los caracteres que no se encuentren en el rango de caracteres AZ / az. Eso significa caracteres especiales comoé
,ß
etc. o caracteres cirílicos y tales serán eliminados.Si no se desea reemplazar estos caracteres, utilice clases de caracteres predefinidas en su lugar:
PD:
\p{Alnum}
no logra este efecto, actúa igual que[A-Za-z0-9]
.fuente
[^\\p{IsAlphabetic}\\p{IsDigit}]
funciona bien.{IsDigit}
no funciona para mí y lo{Digit}
hace es que estoy probando esto en Android. Y Android se haUNICODE_CHARACTER_CLASS
activado de forma predeterminada. Gracias por el despacho.Esto dejará espacios intactos. Supongo que eso es lo que quieres. De lo contrario, elimine el espacio de la expresión regular.
fuente
También puedes probar esta expresión regular más simple:
fuente
str.replaceAll("[^\\p{Alnum}\\s]", "")
\\p{Alnum}\\p{Space}
.Las expresiones regulares de Java no requieren que coloque una barra diagonal (
/
) o cualquier otro delimitador alrededor de la expresión regular, a diferencia de otros lenguajes como Perl, por ejemplo.fuente
Hice este método para crear nombres de archivo:
fuente
Solución:
value.replaceAll("[^A-Za-z0-9]", "")
Explicación:
Mirando la palabra clave como dos funciones:
[(Pattern)] = match(Pattern)
[^(Pattern)] = notMatch(Pattern)
Además con respecto a un patrón:
A-Z = all characters included from A to Z
a-z = all characters included from a to z
0=9 = all characters included from 0 to 9
Por lo tanto, sustituirá todos los caracteres NO incluidos en el patrón
fuente
Si desea permitir también caracteres alfanuméricos que no pertenecen al conjunto de caracteres ascii, como por ejemplo, diéresis alemana, puede considerar usar la siguiente solución:
Tenga en cuenta que el uso del indicador UNICODE_CHARACTER_CLASS podría imponer una penalización de rendimiento (consulte javadoc de este indicador)
fuente
Método simple:
fuente
salida: ChlamydiasppIgGIgMIgAAbs8006
Github: https://github.com/AlbinViju/Learning/blob/master/StripNonAlphaNumericFromString.java
fuente
Usando Guava puedes combinar fácilmente diferentes tipos de criterios. Para su solución específica puede usar:
fuente
CharMatcher de Guava proporciona una solución concisa:
fuente