Domanda

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?

È stato utile?

Soluzione

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.

Altri suggerimenti

You dont need to use regex for this, use

$newstr = str_replace("\\\\", "\\", $mystr);

See the str_replace docs

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top