Forward slash in Java Regex

The problem is actually that you need to double-escape backslashes in the replacement string. You see, "\\/" (as I’m sure you know) means the replacement string is \/, and (as you probably don’t know) the replacement string \/ actually just inserts /, because Java is weird, and gives \ a special meaning in the replacement string. (It’s supposedly so that \$ will be a literal dollar sign, but I think the real reason is that they wanted to mess with people. Other languages don’t do it this way.) So you have to write either:

"Hello/You/There".replaceAll("https://stackoverflow.com/", "\\\\/");

or:

"Hello/You/There".replaceAll("https://stackoverflow.com/", Matcher.quoteReplacement("\\/"));

(Using java.util.regex.Matcher.quoteReplacement(String).)

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)