¿Cuál es la expresión regular correcta para un carácter más (+) como primer argumento (es decir, la cadena de sustituir) el método de Java replaceAll
en la clase String? No puedo obtener la sintaxis correcta.Cómo reemplazar un carácter más String.replaceAll utilizando el método de Java
Respuesta
tiene que escapar del +
para la expresión regular, usando \
.
Sin embargo, Java utiliza un parámetro de cadena para construir expresiones regulares, que utiliza \
por sus propias secuencias de escape. Así que hay que escapar de la \
sí:
"\\+"
Tendrá que escapar del + con una \ y porque \ es en sí misma un carácter especial en las cadenas de Java que necesita para escapar de ella con otra \.
Así que su cadena de expresiones regulares se definirá como "\\ +" en el código de Java.
I.e. este ejemplo:
String test = "ABCD+EFGH";
test = test.replaceAll("\\+", "-");
System.out.println(test);
en caso de duda, dejar que java hacer el trabajo por usted:
myStr.replaceAll(Pattern.quote("+"), replaceStr);
Esa es una buena técnica, gracias. –
eso no es suficiente. el replaceStr también necesita ser citado para cosas de reemplazo. ¿por qué no usar simplemente 'myStr.replace ("+", replaceStr) ' – user102008
¿Por qué habría que citar el replaceStr? String.replace() no reemplaza todas las apariciones. – FelixM
Si quieres una cadena sencilla de buscar y reemplazar (es decir, que Don 't necesidad de expresiones regulares), puede ser más sencillo usar el StringUtils from Apache Commons, lo que permitirá escribir:
mystr = StringUtils.replace(mystr, "+", "plus");
thx para señalar esto. me ayudó a recordar el uso de esta solución no regex en casos simples. –
no equivale a usar mystr.replace ("+", "plus")? replace no usa regex (mientras que replaceAll lo hace). – Vinze
Otros ya han declarado el método correcto de:
- Escapar de la
+
como\\+
- Utilizando el método
Pattern.quote
que escapa a todos los meta-caracteres de expresiones regulares.
Otro método que puede utilizar es poner el +
en una clase de caracteres. Muchos de los metacaracteres de expresiones regulares (.
, *
, +
entre muchos otros) se tratan literalmente en la clase de caracteres.
Así también se puede hacer:
orgStr.replaceAll("[+]",replaceStr);
Digamos que desea reemplazar -
con \\\-
, utilice:
text.replaceAll("-", "\\\\\\\\-");
String str="Hello+Hello";
str=str.replaceAll("\\+","-");
System.out.println(str);
O
String str="Hello+Hello";
str=str.replace(Pattern.quote(str),"_");
System.out.println(str);
¿No debería ser el segundo ejemplo 'Pattern.quote (" + ")' y no 'Pattern.quote (str)'? –
- 1. Java String.replaceAll regex
- 2. Alternativas más rápidas para reemplazar el método en Java String?
- 3. Cómo reemplazar "\" con "\\" en java
- 4. JavaScript: Reemplazar el carácter hexadecimal
- 5. Quiero reemplazar una Cadena completa con un nuevo valor utilizando el método String replaceAll en Java
- 6. Reemplazar el carácter "en C#
- 7. Cómo reemplazar un carácter en el texto por jQuery
- 8. Uso de funciones o métodos en String.replaceAll() regex de Java
- 9. String.replaceAll sin RegEx
- 10. Java String.replaceAll no reemplaza una cita con la comilla escapada
- 11. ¿Cómo reemplazar un carácter de una cadena en SQL?
- 12. Java Regex - Usar el método replaceAll de String para reemplazar líneas nuevas
- 13. vim ocultar con más de un carácter
- 14. jQuery carácter múltiple reemplazar
- 15. Cadena: cómo reemplazar múltiples caracteres posibles con un solo carácter?
- 16. expresiones regulares - Cómo reemplazar un carácter entre comillas
- 17. Pattern.DOTALL con String.replaceAll
- 18. reemplazar el método principal
- 19. ¿Cómo reemplazar uno o más espacios consecutivos con un solo carácter?
- 20. vim reemplazar el carácter a \ n
- 21. Confundir "reemplazar un método privado"
- 22. Cómo reemplazar instancias repetidas de un carácter con una instancia única de ese carácter en python
- 23. Reemplazar un carácter de una cadena en python
- 24. Cómo reemplazar caracteres en una cadena java?
- 25. Reemplazar un carácter en un índice determinado en NSString
- 26. Reemplazar el carácter de comilla simple (') de una cadena
- 27. Refactorización del método Java utilizando Enum
- 28. La manera más rápida de realizar muchas cadenas reemplazar en Java
- 29. El objeto no tiene el método 'reemplazar'
- 30. Anulando un Método Java
que tienen la mala costumbre de utilizar s '/' en la construcción de la expresión regular y luego ejecutar .replace ('/', '\\'), de modo que no tengo que escribir "\\\\" para que coincida con una barra invertida literal. –
Si desea reemplazar una cadena fija, Pattern.quote (String) es un amigo muy agradable. – gustafc