...for a given Zipcode, there are often multiple cities listed.[/qoute]
My knowledge about US addresses is limited. In germany what compares to a zip code is a so called postal guide number and simply denotes a number representing some postal office. So it's sufficient for the long distance transfer of a mail. From there on, the rest of the route is sometimes even done by bike.
But the same rule applies, sometimes such a number is shared among several small cities, but the opposite case is perhaps more often, bigger cities have more postal guide numbers or zips (as I understand them).
Googled Rube Goldberg and my first finding was, he was an engineer known for nonsense machines (what heppens then? machine), but wikipedia also says he's a synonym for unnecessarily comlicated machines, doing something simple.
I wouldn't judge matching a list of cities to the address string as complicated. Parsing addresses is just something you judge as simple from the everyday life and thus don't think you need so much code and ado about this. But you just apply general knowledge about city names for example, and this actually is done quite the same way, you detect the words and detect a city matching your list of know cities in Illinois. You do much more complex things in your brain automatic, without breking it down to the single steps you do, it rather happens to you.
This is something you can only replace with a database to a computer, but then it can do much faster than a human, an more reliable. And know all cities, if your data is complete.
Bye, Olaf.