Need help in replacing character '\' in a string


#1

Dear all,

I am trying to do something like this

fn main() {
let s = "{{\"bssid\" : \"c4:e9:84:f1:b6:46\"}}";
println!("replaced {:?}", s.replace("\\", "test"));
}

The result is s “{{“bssid” : “c4:e9:84:f1:b6:46”}}“
However I want the \ in the s to be replace with nothing. I want to have something like
”{{“bssid” : “c4:e9:84:f1:b6:46”}}”


#2

Your original string has no such char , what you see in the code or the output are the escape characters.

If you encode the original string s as raw-string it will contain the char \
Now, when you replace this backslash char \ now the resulting string is shorter.

fn main() {
# encode as raw-string
let s = r#"{{\"bssid\"}}"#;
let t = s.replace("\\", "");
println!("replaced origlen={} newlen={} {:?}", s.len(), t.len(), t);
}

the out output will be

replaced origlen=13 newlen=11 "{{\"bssid\"}}"

#3

Thanks. I got the problem. It looks like that it is seen only in the output