Introduction
The backslash (‘\’) is used to escape characters with a special meaning in Java. Some examples of its use are:
- \n – New Line
- \t – Tab
- \r – Carriage Return
When you want to use the backslash in itself (for example in a Windows Path, you need to escape it with another backslash. For example the Path C:\Program Files needs to be written as C:\\Program Files.
In Regular Expressions you can also use the backslash, for example to match a backslash. In Regular Expression however the backslash also is a special character. So to match a backslash in a Java Regular Expression you should type it 3 times, one because it’s for Java, one to escape the regex and the backslash itself.
To replace a backslash in a String with a space:
String str = "Hello\Regex"; String replaced = str.replacaAll("\\", " "); //Test if it worked: System.out.println(replaced); //Output: 'Hello Regex'
Some other examples:
String patternStr = "i.e."; boolean matchFound = Pattern.matches(patternStr, "i.e.");// true matchFound = Pattern.matches(patternStr, "ibex"); // true // Quote the pattern; i.e. surround with Q and E matchFound = Pattern.matches("\Q"+patternStr+"\E", "i.e."); // true matchFound = Pattern.matches("\Q"+patternStr+"\E", "ibex"); // false // the pattern patternStr = escapeRE(patternStr); // i.e. matchFound = Pattern.matches(patternStr, "i.e."); // true matchFound = Pattern.matches(patternStr, "ibex"); // false // Returns a pattern where all punctuation characters are escaped. static Pattern escaper = Pattern.compile("([^a-zA-z0-9])"); public static String escapeRE(String str) { return escaper.matcher(str).replaceAll("\\$1"); }
For more information on Regular Expressions see my article about grep.