RE: [PHP] ereg_replace help
| From: | Martin Towell | Date: | Wed, 19 Nov 2003 00:20:42 +0000 |
| Subject: | RE: [PHP] ereg_replace help | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-170209@lists.php.net to get a copy of this message | ||
> * Thus wrote Martin Towell (martin.towell@world.net):
> > Hi All,
> >
> > I have an array of strings in the following format:
> > "abcd - rst"
> > "abcd - uvw"
> > "abcd - xyz"
> > "foobar - rst"
> > "blah - rst"
> > "googol - uvw"
> >
> > What I want to do is strip everything from the " - " bit of
> the string to
> > the end, _but_ only for the strings that don't start with "abcd"
> >
> > I was thinking something like the following:
> > echo ereg_replace("(!abcd) - xyz", "\\1", $str)."\n";
> > but obviously this doesn't work, otherwise I wouldn't be
> emailing the
> > list...
> >
>
> $newarray = preg_replace('/((?<!abcd) - (.*))$/', '\\3', $array);
>
> > Can anyone help? I need to use ereg_replace() because it's
> part of our code
> > library and therefore can't change :(
>
> How do you mean its part of your code library? I would strongly
> suggest using preg_* for its speed and capabilites.
>
> Curt
thanks for everyone's help...
> How do you mean its part of your code library?
I mean that the function I'm having to call is passed an array (coming from
a databse) and it has an option to do an ereg_replace() on the incoming
array. Due to the amount of other code relying on it, is very hard to change
without causing something strange to happen elsewhere :(
If all the code was mine, then I wouldn't have any reservations on changing
it in an instant. I'm having to improve the code gradually (good luck to me)
Martin