有没有人有一个PHP类,或正则表达式解析组件的地址?至少,它应该分解成这些组件:街道信息,州,邮编,国家
我们有一个街道地址列:
123 Maple Rd.
321 1st Ave.
等等...
有没有办法将这些地址与给定的输入相匹配?输入将是街道地址,但可能不是相同的格式.例如:
123 Maple Road
321 1st Avenue
我们的第一个想法是剥离所有街道术语(rd,st,ave,blvd等)的输入.
显然,这种情况一直不可靠.有没有其他方法可以尝试匹配SQL Server中的街道地址?
我们可以使用用户定义的函数,存储过程和常规的旧t-sql.我们不能使用clr.
USPS webtools 很贵,而且 Google Maps 没有某些地址。有没有免费或开源的解决方案?
我无法理解如何访问ABAddressBookRef中的地址属性.我用电话号码做得很好:
ABMultiValueRef phoneNumberProperty = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSArray* phoneNumbers = (NSArray*)ABMultiValueCopyArrayOfAllValues(phoneNumberProperty);
CFRelease(phoneNumberProperty);
Run Code Online (Sandbox Code Playgroud)
但是唉...我无法弄清楚如何为地址做这件事.如果我这样做:
ABMultiValueRef addressProperty = ABRecordCopyValue(person, kABPersonAddressProperty);
NSArray *address = (NSArray *)ABMultiValueCopyArrayOfAllValues(addressProperty);
Run Code Online (Sandbox Code Playgroud)
我回到看起来像一个字典,但它被键入一个数组.如何访问其中的属性?我在网上看到了大量不同的建议,但它们似乎都涉及大约30行代码,只是为了从字典中提取一行!
有人可以帮忙吗?谢谢!
我想计算两点之间的距离.要点是地址.
例:
A点:肯尼迪机场,纽约,纽约,美国
B点:La Guardia,纽约,纽约,美国
现在我想计算距离(通过道路)和A点到B点之间的行程时间.
我怎样才能做到这一点?是否可以使用谷歌地图API?你会如何解决这个问题?
我已经尝试了几件事,但无法使其正常工作。我需要排除邮政信箱。我以为我只需要用 ?!.. 包裹它,但它不起作用。有什么想法吗?
^((?i)[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\s*(\d.))*$
Run Code Online (Sandbox Code Playgroud)
编辑:对不起,这就是我要找的。
示例:当输入是“邮政信箱”或“邮局”时,我需要正则表达式为假。当输入为 7821 Test street 时,我需要正则表达式为真。
我试图在 ASP.net MVC 项目中使用它
/// <summary>
/// Regex for street fields
/// </summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
public class StreetAddressAttribute : RegularExpressionAttribute, IClientValidatable
{
/// <summary>
/// Regular expression validation for street field
/// </summary>
public StreetAddressAttribute()
: base(@"^(?!(?i)[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\s*(\d.)*)$")
{
}
/// <summary>
/// Client side validation
/// </summary>
/// <param name="metadata">Modelmetadata</param>
/// <param name="context">ControllerContext</param>
/// <returns>Client-side validation rules</returns>
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
yield return …Run Code Online (Sandbox Code Playgroud) 我正在构建一个Twitter机器人,它将收听如下推文:
Hey @twitterbot, I'm looking for restaurants around 123 Main Street, New York
Run Code Online (Sandbox Code Playgroud)
或者,另一个例子:
@twitterbot, what's near Yonge & Dundas, Toronto? I'm hungry!
Run Code Online (Sandbox Code Playgroud)
然后,它将回复您希望这些问题返回的数据类型.我已经解决了大部分问题,但我仍然坚持不应该那么难的事情; 从推文中提取地址.
我将转发地址到地理编码服务以获取lat/lng,因此我不需要以任何方式格式化或准备地址; 我只需要将它与不相关的文字隔离开来,比如"我正在寻找周围的餐馆"或"我很饿!".
是否有任何NLP工具可以在一个文本块中执行此地址识别?有关于另一种方式的建议吗?因为谷歌的地理编码器处理如此广泛的地址格式(甚至像'伊顿中心,多伦多'作为一个地址),我不能使用正则表达式来解决这个问题.
换句话说,我只想删除任何不属于地址的文本.
我正在寻找的地址需要在美国/加拿大工作.
StackOverflow上有一些类似的问题,但没有一个能解决我能找到的这个问题.因为谷歌的地理编码器是如此宽容,解决方案不一定是完美的,它只需要摆脱足够的模糊,以便谷歌知道我想说的是什么.
我对NLP很新,所以我很欣赏有关这个主题的任何指导.
我用 HTML 制作了一个表单,Chrome 上的自动填充功能成功地填充了街道地址、城市和邮编。如果我将“状态”输入保留为type="text",那么它也会成功自动填充。但是,如果我使用select/option下拉列表,则它不会自动填充。
对于选项,我尝试使用状态缩写作为值,例如:
<label>
<select>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<select>
State
</label>
Run Code Online (Sandbox Code Playgroud)
我尝试使用状态名称作为值:
<option value="Alabama">Alabama</option>
<option value="Alaska">Alaska</option>
Run Code Online (Sandbox Code Playgroud)
两者都不起作用。
有没有办法让谷歌浏览器的自动填充在自动填充地址时从下拉列表中自动选择一个状态?
笔记:
假设我将地址存储在数据库表中,在这个相当常见的细分中:
address_street_line_1,
address_street_line_2,
address_city,
address_state,
address_zip,
address_country_id
Run Code Online (Sandbox Code Playgroud)
(注意:我已经阅读了有关进一步拆分,街道类型,门牌号等的问题,对于这个应用程序,我认为这会使事情变得更加复杂.)
为了与国际用户一起使用,不应该要求哪些字段?
我在想这个:
address_street_line_1 REQUIRED
address_city REQUIRED
address_country_id REQUIRED
Run Code Online (Sandbox Code Playgroud)
我应该要求州或邮政吗?
谢谢!泽维尔
我想将地址解析(提取)到HouseNumber和Streetname.我以后应该能够将提取的"值"写入新列(商店$ HouseNumber和商店$ Streetname).
所以我想说我有一个名为"商店"的数据框:
> shops
Name city street
1 Something Fakecity New Street 3
2 SomethingOther Fakecity Some-Complicated-Casestreet 1-3
3 SomethingDifferent Fakecity Fake Street 14a
Run Code Online (Sandbox Code Playgroud)
那么有没有办法将街道列分成两个列表,一个是街道名称,一个是房屋号码,包括"1-3","14a"等情况,所以最后,结果可以分配给数据框架和外观.
> shops
Name city Streetname HouseNumber
1 Something Fakecity New Street 3
2 SomethingOther Fakecity Some-Complicated-Casestreet 1-3
3 SomethingDifferent Fakecity Fake Street 14a
Run Code Online (Sandbox Code Playgroud)
示例:Easyfakestreet 5 - > Easyfakestreet,5
由于我的一些街道字符串将具有带连字符的街道地址并且具有非数字组件,因此稍微复杂一些.
示例:
New Street 3 - > ['New Street','3']
Some-Complicated-Casestreet 1-3 - > ['Some-Complicated-Casestreet','1-3']
Fake Street 14a - > ['假街','14a']
我将不胜感激!
street-address ×10
google-maps ×2
php ×2
regex ×2
sql ×2
abmultivalue ×1
api ×1
autofill ×1
c# ×1
country ×1
html ×1
iphone ×1
nlp ×1
r ×1
split ×1
sql-server ×1
usps ×1