Java Language Personaggi di fuga


Esempio

Generalmente

Per usare caratteri specifici dell'espressione regolare ( ?+| Ecc.) Nel loro significato letterale, devono essere sfuggiti. Nell'espressione regolare comune ciò è fatto da una barra rovesciata \ . Tuttavia, poiché ha un significato speciale in Java Strings, devi usare una doppia barra rovesciata \\ .

Questi due esempi non funzioneranno:

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

Questo esempio funziona

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

Divisione di una stringa delimitata da un tubo

Questo non restituisce il risultato atteso:

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

Ciò restituisce il risultato previsto:

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

Escaping backslash \

Questo darà un errore:

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

Questo funziona:

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