Java Language Caractères d'échappement


Exemple

Généralement

Pour utiliser des caractères spécifiques à une expression régulière ( ?+| Etc.) dans leur sens littéral, ils doivent être échappés. Dans les expressions rationnelles courantes, cela se fait par une barre oblique inverse \ . Cependant, comme il a une signification particulière dans les chaînes Java, vous devez utiliser une double barre oblique inverse \\ .

Ces deux exemples ne fonctionneront pas:

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

Cet exemple fonctionne

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

Fractionnement d'une chaîne délimitée par un tuyau

Cela ne renvoie pas le résultat attendu:

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

Cela renvoie le résultat attendu:

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

Échapper à la barre oblique inverse \

Cela donnera une erreur:

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

Cela marche:

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