Re: preg_match() oddities and question [message #176077 is a reply to message #176071] |
Tue, 22 November 2011 16:56 |
Thomas 'PointedEars'
Messages: 701 Registered: October 2010
Karma:
|
Senior Member |
|
|
Sandman wrote:
> Thomas 'PointedEars' Lahn <PointedEars(at)web(dot)de> wrote:
>> Sandman wrote:
>>> So I have this regexp:
>>>
>>> if (preg_match("/^(.*?)\s*(\d*?)\s*([A-Z,a-z,-]*?)$/", $search, $m)){
>>> $streetname = uc_words($m[1]);
>>> $streetnumber = trim($m[2]);
>>> $streetletter = strtoupper($m[3]);
>>> $search = trim($streetname . SPACE . $streetnumber .
>>> $streetletter);
>>> }
>>>
>>> The desired result is taki9ng the input ($search) and split it into
>>> its parts as an address, right? $search can be, for example, "foo
>>> street 34", "longstreet 45b", "longstreet 45 b" or just "longstreet".
>>
>> "10 East 42nd Street, New York, NY 10017, USA".
>
> That wouldn't be a normal swedish address, no. :)
You had not limited the country or the language of your street addresses.
My point is that parsing a street name and a house number from a street
address is a hard problem that cannot be solved only by applying one regular
expression.
PointedEars
--
realism: HTML 4.01 Strict
evangelism: XHTML 1.0 Strict
madness: XHTML 1.1 as application/xhtml+xml
-- Bjoern Hoehrmann
|
|
|