问题:我有一个来自Access数据库的地址字段,该数据库已转换为Sql Server 2005.此字段包含一个字段中的所有内容.我需要将地址的各个部分解析为规范化表中的相应字段.我需要为大约4,000条记录执行此操作,并且它需要是可重复的.
假设:
假设在美国的地址(现在)
假设输入字符串有时包含收件人(被发送者)和/或第二个街道地址(即B组)
国家可以缩写
邮政编码可以是标准的5位数或zip + 4
在某些情况下存在拼写错误
更新:在回答提出的问题时,标准并未普遍遵循,我需要存储个别值,而不仅仅是地理编码和错误意味着拼写错误(上面已修正)
样本数据:
AP Croll&Son 2299 Lewes-Georgetown Hwy,Georgetown,DE 19947
11522 Shawnee Road,Greenwood DE 19950
144 Kings Highway,SW Dover,DE 19901
综合Const.服务2 Penns Way Suite 405 New Castle,DE 19720
Humes Realty 33 Bridle Ridge Court,Lewes,DE 19958
Nichols Excavation 2742 Pulaski Hwy Newark,DE 19711
2284 Bryn Zion Road,Smyrna,DE 19904
VEI Dover Crossroads,LLC 1500 Serpentine Road,Suite 100 Baltimore MD 21
580 North Dupont Highway Dover,DE 19901
PO Box 778 Dover,DE 19903
虽然我知道匹配街道地址永远不会是完美的,但我希望创建一些大部分时间都能接近的正则表达式.
我想突出一个地址.我在正则表达式上很糟糕,我试图接近但是有人可以帮我理解如何让它变得更好吗?
串:
上午6点 - 11点,Palma Sola小学,6806 Fifth Ave NW,Bradenton,FL 34209来到dsfsd sa fsa fasdf附近的asfsds 5001 west你的妈妈不住在这里我的2005 ford游侠,
正则表达式1:
/\S +(\ d {2,5}\S +)([A | P]?!米\ b)中(([A-ZA-Z |\S +] {1,5}){1,2}) ?([\ S | \,|.] +)(([A-ZA-Z |\S +] {1,30}){1,4})(法院|克拉|街道| ST |驱动|博士|车道| LN |道路| RD | BLVD)([\ S | \,| | \;] +)(([A-ZA-Z |\S +] {1,30}){1,2} )([\ S | \,|.] +)\ b(AK?| AL | AR | AZ | CA | CO | CT | DC | DE | FL | GA | GU …
我们有一个显示地图数据的程序(想想谷歌地图,但我们的客户有更多的交互性和自定义图层).
我们允许通过一组组合框进行导航,这些组合框用一堆数据预填充某些字段(即:国家:加拿大,填写省字段.选择安大略省,并填写县/区域列表.选择县/地区,城市填写等...).
虽然这可以保证准确的地址,但如果用户不知道街道地址或城市所在的位置(即哪个县/地区是厨房用户?),则会给用户带来痛苦.
因此,我们正在尝试使用自由格式文本字段来执行地址解析器.
用户可以输入类似这样的内容(类似于Google地图,Bing地图等):22 Main St,Kitchener,On
我们可以将它划分为多个部分并对数据进行查找并找到他们正在寻找的点(或建议替代方案).
问题在于我们如何正确划分信息?我们如何分解这些部分并找到可能的匹配?我猜我们不能保证用户会以我们一直期望的格式输入数据(显然).如果我们找不到完全匹配(或者找到多个完全匹配......例如,在不同的县中具有相同街道名称的两个城市),则对此进行跟进将是如何呈现数据.
我们在地图数据中有大量数据(主要是mapinfo标签格式).所以我们可以对街道名称,城市,州等进行快速扫描.但我不确定解决这个问题的最佳方法.当然,使用谷歌地图会很好,因为我们的大多数客户都处于封闭的网络中,通常不允许外部访问,大多数人不愿意依赖谷歌地图(因为它不包含他们需要的太多信息) ,例如自定义地图图层).显然,他们可以去谷歌并获得正确的位置然后转移到我们的软件,但这将耗费时间并且过程的速度非常重要.
我正在使用GeoPy将地址编码为lat,lng.我还想提取每个地址的逐项地址组件(街道,城市,州,邮政编码).
GeoPy返回一个带有地址的字符串 - 但我找不到一种可靠的方法来分隔每个组件.例如:
123 Main Street, Los Angeles, CA 90034, USA =>
{street: '123 Main Street', city: 'Los Angeles', state: 'CA', zip: 90034, country: 'USA'}
Run Code Online (Sandbox Code Playgroud)
Google地理编码API会返回这些单独的组件......有没有办法从GeoPy获取这些组件?(或不同的地理编码工具?)
与此问题有些相关,但在没有任何关于QuickBooks的答案的情况下,有没有人知道Java的地址解析器?可以采取非结构化地址信息并解析地址行1,2和城市州邮政编码和国家/地区的东西?
Currenty,我使用以下代码来获取国家/地区,邮政编码,地区和子地区:
var country, postal_code, locality, sublocality;
for (i = 0; i < results[0].address_components.length; ++i)
{
for (j = 0; j < results[0].address_components[i].types.length; ++j)
{
if (!country && results[0].address_components[i].types[j] == "country")
country = results[0].address_components[i].long_name;
else if (!postal_code && results[0].address_components[i].types[j] == "postal_code")
postal_code = results[0].address_components[i].long_name;
else if (!locality && results[0].address_components[i].types[j] == "locality")
locality = results[0].address_components[i].long_name;
else if (!sublocality && results[0].address_components[i].types[j] == "sublocality")
sublocality = results[0].address_components[i].long_name;
}
}
Run Code Online (Sandbox Code Playgroud)
那令人不满意.有没有其他方法可以达到相同的效果?
我正在使用Java 6.我正在寻找一种自动解析地址的方法.我不担心地址是否存在.我发现的最好的东西是JGeocoder(v 0.4.1),但是JGeocoder无法解析这样的地址
16th Street Theater, Berwyn Cultural Center, 6420 16th St.
Run Code Online (Sandbox Code Playgroud)
有谁知道一个可以应对挑战的免费Java地址解析器?"解析"是指能够区分街道,城市,州,邮政编码以及可能的地点名称(上述地点名称为"第16街剧院,伯温文化中心").
我有一些完整的地址,例如:
$addr1 = "5285 KEYES DR KALAMAZOO MI 49004 2613"
$addr2 = "PO BOX 35 COLFAX LA 71417 35"
$addr3 = "64938 MAGNOLIA LN APT B PINEVILLE LA 71360-9781"
Run Code Online (Sandbox Code Playgroud)
我需要从字符串中获取5位数的邮政编码.我怎样才能做到这一点?也许用RegEx?
可接受的答案假定地址中可能有多个5位数字,但Zip代码将始终是最后一个连续的5位数字.
我的想法是使用explode然后循环并检查每个索引.谁有更好的主意?
任何帮助是极大的赞赏..
我当前的应用程序需要存储用户的地址信息.我目前正在讨论是否使用惯用的街道地址/城市/州/邮政文本框和下拉菜单,或者采用谷歌的方法,只需将所有内容放在一行.有关以这些方式存储地址信息的优缺点的任何想法?
我想知道什么是验证美国地址的好方法,我知道可能没有正确的方法来做到这一点,但我会采用基本的方式:#,街道名称,城市,州和邮政编码.
任何想法都会欣赏它.谢谢