Bug of replace?



replace("123\n", r"(\n)", s"\1") is OK, but replace("123\n", r"(\n)", s"\r\1") reports “Bad replacement string”. Is this a bug of function replace?


It might be considered a bug in the string literal for SubstitutionString:

The following works, where the SubstitutionString is created directly:

(Note that below \1 is displayed as \l because discourse markdown renders as a backtick, and I don’t know how to escape it)

Julia-0.5.1> s = Base.SubstitutionString("\r\\l")
Julia-0.5.1> replace("123\n", r"(\n)", s)

It appears that s"\r\1" creates a 4-character string "\\r\\l", rather than the 3-character string "\r\\l".

Perhaps file an issue?