parte - funciones string java
Reemplace todos los caracteres que no estén dentro del rango(cadena de Java) (2)
¿Cómo reemplazar todos los caracteres en una cadena que no se ajustan a un criterio. Estoy teniendo problemas específicamente con el operador NO.
Específicamente, estoy tratando de eliminar todos los caracteres que no son un dígito, lo he intentado hasta ahora:
String number = "703-463-9281";
String number2 = number.replaceAll("[0-9]!", ""); // produces: "703-463-9281" (no change)
String number3 = number.replaceAll("[0-9]", ""); // produces: "--"
String number4 = number.replaceAll("![0-9]", ""); // produces: "703-463-9281" (no change)
String number6 = number.replaceAll("^[0-9]", ""); // produces: "03-463-9281"
Aquí hay una hoja de trucos rápida de definición de clase de caracteres y cómo interactúa con algunos meta caracteres de expresiones regulares.
-
[aeiou]
- coincide exactamente con una vocal en minúscula -
[^aeiou]
- coincide con un carácter que NO ES una vocal minúscula (clase de carácter negado ) -
^[aeiou]
- coincide con una vocal minúscula anclada al principio de la línea -
[^^]
- coincide con un personaje que no es un carácter /''^''
-
^[^^]
- coincide con un personaje que no es un cursor al principio de la línea -
^[^.].
- coincide con cualquier punto menos un período literal, seguido de "cualquier" carácter, al principio de la línea -
[az]
: coincide exactamente con un carácter dentro del rango de''a''
a''z''
(es decir, todas las letras en minúscula) -
[az-]
- coincide con una''a''
, una''z''
o un''-''
(guión literal) -
[.*]*
- coincide con una secuencia contigua (posiblemente vacía) de puntos y asteriscos -
[aeiou]{3}
- coincide con 3 vocales minúsculas consecutivas (todas no necesariamente la misma vocal) -
/[aeiou/]
- coincide con la cadena"[aeiou]"
Referencias
Preguntas relacionadas
Para explicar: la ^ al comienzo de una clase de personaje negará esa clase, pero tiene que estar dentro de la clase para que funcione. El mismo carácter fuera de una clase de caracteres es el ancla para el inicio de cadena / línea en su lugar.
Puedes probar esto en su lugar:
"[^0-9]"