¿Cómo escapar del texto para una expresión regular en Java?
¿Java tiene una forma incorporada de escapar de texto arbitrario para poder incluirlo en una expresión regular? Por ejemplo, si mis usuarios ingresan "$5"
, me gustaría hacer coincidir eso exactamente en lugar de "5"
después del final de la entrada.
Aceptado
Desde Java 1.5, sí :
Pattern.quote("$5");
La diferencia entre Pattern.quote
y Matcher.quoteReplacement
no me quedó clara antes de ver el siguiente ejemplo
s.replaceFirst(Pattern.quote("text to replace"),
Matcher.quoteReplacement("replacement text"));