Java Language Personajes de escape


Ejemplo

Generalmente

Para usar caracteres específicos de expresiones regulares ( ?+| Etc.) en su significado literal, deben escaparse. En expresiones regulares comunes esto se hace mediante una barra invertida \ . Sin embargo, como tiene un significado especial en Java Strings, debes usar una doble barra invertida \\ .

Estos dos ejemplos no funcionarán:

"???".replaceAll ("?", "!"); //java.util.regex.PatternSyntaxException
"???".replaceAll ("\?", "!"); //Invalid escape sequence

Este ejemplo funciona

"???".replaceAll ("\\?", "!"); //"!!!"

División de una cadena delimitada por tuberías

Esto no devuelve el resultado esperado:

"a|b".split ("|"); // [a, |, b]

Esto devuelve el resultado esperado:

"a|b".split ("\\|"); // [a, b]

Escape de barra invertida \

Esto dará un error:

"\\".matches("\\"); // PatternSyntaxException
"\\".matches("\\\"); // Syntax Error

Esto funciona:

"\\".matches("\\\\"); // true