Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Odd behaviour replacing "\"

Tags:

c#

I have this issue in which I have a strnig with among other things the literal expression "\\" on several occasions and I want to replace it with "\", when I try to replace it with string.replace, only replcaes the first occurrence, and if I do it with regular expression it doesn't replace it at all

I checked with some RegEx Testers online and supposedly my code is ok, returns what I meant to, but my code doesn't work at all

With string.replace

example = "\\\\url.com\\place\\anotherplace\\extraplace\\";

example = example.replace("\\\\","\\");

returns example == "\\url.com\\place\\anotherplace\\extraplace\\";

With RegEx

example = Regex.Replace(example,"\\\\","\\");

returns example = "\\\\url.com\\place\\anotherplace\\extraplace\\";

It is the same case if I use literals (On the Replace function parameters use (@"\\", @"\") gives the same result as above).

Thanks!

EDIT:

I think my ultimate goal was confusing so I'll update it here, what I want to do is:

Input: variable that holds the string: "\\\\url.com\\place\\anotherplace\\extraplace\\"

Process

Output variable that holds the string "\\url.com\place\anotherplace\extraplace\" (so I can send it to ffmpeg and it recognizes it as a valid route)

like image 843
nicosantangelo Avatar asked Oct 17 '12 17:10

nicosantangelo


2 Answers

change this:

example = "\\\\url.com\\place\\anotherplace\\extraplace\\"; 

to this

example = @"\\\\url.com\\place\\anotherplace\\extraplace\\"; 

It wasn't the Regex.Replace parameters that was the problem.

like image 159
hometoast Avatar answered Sep 22 '22 19:09

hometoast


You only have one occurrence of \\\\ in your string. So it is doing exactly what you asked it to do.

Without escaping (ie without adding extra /'s)

  • What is your actual input?
  • What is your desired output?
like image 38
Ian G Avatar answered Sep 22 '22 19:09

Ian G