What is more likely to be wrong? Your understanding of a specific
regex pattern (which happens to be full of escapes making it
incredibly hard to read) or the implementation of preg_replace?

~Hannes

On 14 March 2011 16:18, Martin Scotta <martinsco...@gmail.com> wrote:
>
> I chose the simplest example to show the preg_replace behavior, there are
> better (and safer) ways to scape slash characters.
> Anyways, *is this the expected preg_replace behavior?*
>
>  Martin
>
> <?php
> function test($str) {
>    static $re = '/(^|[^\\\\])\'/';
>    static $change = '$1\\\'';
>
>    echo $str, PHP_EOL,
>        preg_replace($re, $change, $str), PHP_EOL, PHP_EOL;
> }
>
> test("str '' str"); // bug?
> test("str \\'\\' str"); // ok
> test("'str'"); // ok
> test("\'str\'"); // ok
>
> ----
> Expected:
>
> str '' str
> str \'\' str
>
> str \'\' str
> str \'\' str
>
> 'str'
> \'str\'
>
> \'str\'
> \'str\'
>
> ----
> Result:
>
> str '' str
> str \'' str
>
> str \'\' str
> str \'\' str
>
> 'str'
> \'str\'
>
> \'str\'
> \'str\'
>
>
>  Martin Scotta

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to