From: "Jonatan Pugliese." <[EMAIL PROTECTED]>
> From: "Matt Matijevich" <[EMAIL PROTECTED]>
> > I have have a string that I need to split into 3 different variables:
> > City,State, and Zip.  Here is a couple examples of the strings I need to
> > parse:
> >
> > ANCHORAGE  AK  99507-6420
> > JUNEAU  AK  99801
> > NORTH LITTLE ROCK  AR  72118-5227
> >
> > Does anyone have an idea how I could slit this into the appropriate
> > variables, maybe some kind of regular expression?  I cant use the space
> > character to split the data because some of the city names have spaces
> > in them.
>
> $vector=split( " ", $string, );
>
>
> $City=$vector[0];
> $State=$vector[1];
> $Zip=$vector[2]:

Umm, no. then you'll have $City = "North", $State = "Little" and $Zip =
"Rock" with the last example.

The following works:

<?php

$str = "NORTH LITTLE ROCK  AR  72118-5227
JUNEAU  AK  99801
ANCHORAGE  AK  99507-6420
NORTH CARO  MI  48732
";

preg_match_all('/^(.*)([a-z]{2})\s+([0-9]{5}(-[0-9]{4})?)/im',$str,$matches)
;

$count = count($matches[1]);

echo $count . ' addresses found:<br />';

for($x=0;$x<$count;$x++)
{
    $city = trim($matches[1][$x]);
    $state = trim($matches[2][$x]);
    $zip = trim($matches[3][$x]);
    echo "City: $city, State: $state, ZIP: $zip<br />";
}

?>

---John Holmes...


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to