ID:               16786
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Feedback
 Bug Type:         Regexps related
 Operating System: Linux 2.2.19
 PHP Version:      4.2.0
 New Comment:

Could you paste complete code?

(With complete code, we can test immediately and put the code
to test suite, if it's needed)




Previous Comments:
------------------------------------------------------------------------

[2002-04-24 05:12:16] [EMAIL PROTECTED]

Hi,
I have just downloaded PHP4.0.2 and several pieces of code broke
because ereg_replace() seemed to be working incorrectly:

if for example I did the following:

$str = "word1-word2";
$str = ereg_replace("^([^-]*)-(.*)", '\1+\2', $str);

it works as expected, ($str == "word1+word2")

The problem arises if one of the parenthasized subexpression is empty
the \x (where x is the number of the subexpression) in the replace
string does not get replaced at all, instead of with the empty string
eg:

$str = "-word2";
$str = ereg_replace("^([^-]*)-(.*)", '\1+\2', $str);

for this example I'd expect the result to be ($str == "+word2") but
instead you get ($str == "\1+word2") because \1 is empty.

I don't believe that this is meant to happen but if it is how are we
meant to deal with such a case?


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=16786&edit=1

Reply via email to