Con referencia a continuación pregunta - String.replaceAll single backslashes with double backslashesjava, expresión regular, la necesidad de escapar barra invertida en expresiones regulares
escribí un programa de prueba, y me encontré con que el resultado se da en ambos casos, si me escape la barra invertida o no. Esto puede deberse a que - \ t es una secuencia de escape de Java String reconocida. (Pruebe y se quejaría). - \ t se toma como una pestaña literal en la expresión regular. No estoy seguro de las razones.
¿Hay alguna directiva general sobre el escape de expresiones regulares en Java. Creo que usar dos barras invertidas es el enfoque correcto.
Me gustaría saber su opinión.
public class TestDeleteMe {
public static void main(String args[]) {
System.out.println(System.currentTimeMillis());
String str1 = "a b"; //tab between a and b
//pattern - a and b with any number of spaces or tabs between
System.out.println("matches = " + str1.matches("^a[ \\t]*b$"));
System.out.println("matches = " + str1.matches("^a[ \t]*b$"));
}
}
Esto es correcto, el * "Creo" * no es necesario. El '" \\ t "' se traduce en '" \ t "' en la cadena de Java, que se traduce en un carácter de tabulación en el motor de expresiones regulares. El '" \ t "' se traduce en un carácter de tabulación en la cadena de Java, que permanece inalterado en la expresión regular. – Tomalak
Gracias. Entiendo. – RuntimeException
@Tomalak Me deshice de _'creo'_ poco ... lo siento por eso ... –