On Tue, Nov 18, 2003 at 04:37:52PM +1100, Martin Towell wrote:
:
: 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...
You can't use "!" because it's not a valid special character in regular
expressions. It's really hard to craft do-not-match-this-word patterns.
You're better off separating the two pieces of logic.
$arr = array(
"abcd - rst",
"abcd - uvw",
"abcd - xyz",
"foobar - rst",
"blah - rst",
"googol - uvw"
);
reset($arr);
while (list($key, $value) = each($arr))
{
if (substr($value, 0, 5) != 'abcd ')
{
$arr[$key] = ereg_replace('^(.*) - .*$', '\1', $value);
}
}
print_r($arr);
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php