On Mon, 2010-03-15 at 15:03 -0400, Al wrote:
> Anyone have a regex pattern for deleting multiple backslashes e.g., \\\\\\\
>
> I pretty good with regex; but, be damned if I can delete them with
> preg_replace()
>
> I've tried "\\\\" as the manual says
>
> preg_replace("/\\\\/", '', $str);
>
> preg_replace("/(\\\\)+/", '', $str);
>
> preg_replace("/\x5C/", '', $str);
>
> preg_replace("/\\x5c/", '', $str);
>
> And lots of others.
>
> stripslashes() and stripcslashes() are limited.
>
>
>
What about this:
$str = 'text\\dfnfg\\dhdsg\\\\';
echo preg_replace('/\\\{2,}/', '', $str);
I think what was catching you out was that you were escaping the \ once
for the regex, but then it needed it again because it was in a single
quoted string, meaning 3 slashes in total. Took me a little while to
figure that out as well!
The {2,} part just tells it to only remove the slashes where they occur
in runs of two or more.
Thanks,
Ash
http://www.ashleysheridan.co.uk