如何从字符串中提取地址成分?

用户名

我有一个使用Xamarin的Xamarin Forms应用程序。在平台上移动以获取当前位置,然后确定当前地址。地址以带换行符的字符串格式返回。

该地址可以如下所示:

111 Mandurah Tce
Mandurah WA 6210
Australia

或者

The Glades
222 Mandurah Tce
Mandurah WA 6210
Australia

我有这段代码可以将其分解为街道地址(包括电话号码),郊区,州和邮政编码(不是很优雅,但是可以用)

string[] lines = address.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
List<string> addyList = new List<string>(lines);
int count = addyList.Count;
string lineToSplit = addyList.ElementAt(count - 2);
string[] splitLine = lineToSplit.Split(null);
List<string> splitList = new List<string>(splitLine);

string streetAddress = addyList.ElementAt (count - 3).ToString ();
string postCode = splitList.ElementAt(2);
string state = splitList.ElementAt(1);
string suburb = splitList.ElementAt(0);

我想提取街道编号,在前面的示例中这很容易,但是考虑到该编号可能是Lot 111(只需要捕获111,而不是LOT字),这样做的最佳方法是什么? )或123A或8/123-有时还会返回类似111-113的信息

我知道我可以使用正则表达式查找所有可能的组合,但是在编写更多凌乱的代码之前,是否有一个优雅的内置类型解决方案(而且我知道上面的代码不是特别健壮)?

金瑞恩

这些简单的正则表达式将说明多种类型的地址格式,但是您是否考虑了所有可能的变体,例如:

PO Box 123 suburb state post_code
Unit, Apt, Flat, Villa, Shop X Y street name 
7C/94 ALISON ROAD RANDWICK NSW 2031

那仅仅是为了得到号码。您还必须处理所有可能的街道类型,例如车道,道路,地方,大街,大路。

然后是街道类型,例如:

12 Grand Ridge Road suburb_name

由于Ridge也是有效的街道类型,因此可以解释为street =“大岭(Grand Ridge)”和郊区=“ Road Melbourne_name”。

我在这方面做了很多工作,发现大量有效的地址模式意味着简单的正则表达式不能解决大量数据上的问题。

我最终将这个解析器开发为http://search.cpan.org/~kimryan/Lingua-EN-AddressParse-1.20/lib/Lingua/EN/AddressParse.pm来解决此问题。它最初是为澳大利亚地址写的,因此应该对您来说很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从字符串中提取IP地址

来自分类Dev

从地址字符串中提取邮政编码

来自分类Dev

从变量字符串中提取IP地址

来自分类Dev

从地址字符串中提取邮政编码

来自分类Dev

从文件地址中提取字符串

来自分类Dev

从字符串中提取电子邮件地址

来自分类Dev

如何从字符串中提取数字

来自分类Dev

如何从字符串中提取数字

来自分类Dev

如何从字符串中提取标签

来自分类Dev

如何从字符串中提取令牌?

来自分类Dev

如何从字符串中提取年龄?

来自分类Dev

如何从字符串中提取文本?

来自分类Dev

如何从字符串中提取日期?

来自分类Dev

如何从字符串中提取数字

来自分类Dev

如何从字符串中提取数字

来自分类Dev

如何从字符串中提取数字

来自分类Dev

如何从字符串中提取值

来自分类Dev

如何从字符串中提取整数?

来自分类Dev

如何从T-SQL中的字符串中提取地址编号

来自分类Dev

如何使用 Ruby on Rails 从字符串中提取电子邮件地址?

来自分类Dev

如何从字符串中提取unicode字符串

来自分类Dev

如何从字符串中提取字符串

来自分类Dev

如何从字符串中提取字符?

来自分类Dev

在python中,如何从字符串中提取某些字符?

来自分类Dev

Java Regex:如何从字符串中提取除最后一部分以外的IP地址?

来自分类Dev

如何使用正则表达式和Notepad ++从日志的字符串中提取IP地址

来自分类Dev

如何使用从此字符串中提取数据

来自分类Dev

如何从字符串中提取多个值以调用数组?

来自分类Dev

如何从字符串中提取版本号