php regex replace double backslash with single
backslash, php, regex
Solution
First, like many other people are stating, regular expressions might be too heavy of a tool for the job, the solution you are using should work however.
$newstr = preg_replace('/\\\\/', '\\', $mystr);
Will give you the expected result, note that preg_replace returns a new string and does not modify the existing one in-place which may be what you are getting hung up on.
You can also use the less expensive str_replace in this case:
$newstr = str_replace('\\\\', '\\', $mystr);
This approach costs much less CPU time and memory since it doesn't need to compile a regular expression for a simple task such as this.
Problem
I do not want to use `stripslashes()` because I only want to replace "\\" with "\". I tried `preg_replace("/\\\\/", "\\", '2\\sin(\\pi s)\\Gamma(s)\\zeta(s) = i\\oint_C \\frac{-x^{s-1}}{e^x -1} \\mathrm{d}x');` Which to my disapointment returns: `2\\sin(\\pi s)\\Gamma(s)\\zeta(s) = i\\oint_C \\frac{-x^{s-1}}{e^x -1} \\mathrm{d}x` Various online regex testers indicate that the above should work. Why is it not?