Re: String parsing help

From: Date: Wed, 20 Aug 2003 20:44:00 +0000
Subject: Re: String parsing help
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-160242@lists.php.net to get a copy of this message
From: "Jonatan Pugliese." <jonatan_pugliese@aca.org.ar> > From: "Matt Matijevich" <matijevich@alliancetechnologies.net> > > 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...

« previous php.general (#160242) next »