2009-11-05 94 views
0

我需要从一个字符串提取公司地址

$string ="some text 9 th pizza tower 78 main Chennai 600001. and other information may be phone number etc"; 

提取的地址处$string我想只提取“9日比萨塔78主要奈600001”

这个地址的格式不是恒定的,可能以两种不同的方式 一个是字符串变量另一个是这样

$string1= "some text 9 th pizza tower main Chennai 600001. and other information may be phone number etc"; 

在这里,我需要提取“第9 PI zza塔主Chennai 600001“

回答

1

我不认为这是可能的......从纯文本文件中提取文本就像是在树林里要求一棵树,”哪一个?“。

如果文件总是在相同的格式,如:

Company Name 73 
1st Cross Street, Hotel Chennai 
-600000 
someadditionalstuff 

那么你已经有了一个变化,或者如果它总是以特殊字符分隔(,,等)。如果它始终是相同的格式(你上面显示了一个),那么这样的事情可能工作:

([a-zA-Z0-9 ]*),([a-zA-Z0-9 ]*) XXX ([a-zA-Z0-9 ]*) (-[0-9]{6}) 

组1:公司名称 组2:地址 第3组:城市 第4组:Zip-代码

鲍比

+0

感谢ADRESS mayy变化,我想只有73 1十字街,酒店钦奈 -600000(不规范CHARAC没有prblem)例如,在某些时候解决这样的73主干道奈600000 。 – Naresh 2009-11-05 09:25:04

+0

时遇到的varible $字符串的地址=“公司名称73 1十字街,酒店钦奈 -600000和额外的信息 ”; – Naresh 2009-11-05 09:28:25

+0

73是固定部分吗? – Bobby 2009-11-05 09:39:04

0

很抱歉,这是不可能的。它可能适用于一个网站,但不适用于其他网站,因为在网页上显示公司地址(或任何地址)时没有标准格式。

0

不是一个简单的问题,并没有一个神奇的AI代码,可以弄明白。 您必须做出一些假设,并查看大量数据以确定它是否合适。

开始 - 如果您认为,每个地址都以邮政编码结尾,您可以搜索字符串中的5(或6)位数字,然后剪切。

找到地址的开头已经超出了我的技能。也许正在寻找第一个号码。

你需要检查大量的例子来找出最适合它们的最佳模式。

+0

而且 - 另一种解决方案 - 让您的用户在单独的字段中输入地址并节省大量时间。 – Dani 2009-11-05 09:54:51

+0

其实我是从网页获得这个作为HTML,然后我删除了所有标记(HTML,脚本,样式)在最后一个在字符串中 – Naresh 2009-11-05 10:00:01

0

是的,它可以通过使用谷歌自然语言处理付费或您可以打开自然语言处理是开放的。但是对于开放的NLP,没有更好的文档可用。 更好地从这个网址是指: https://opennlp.apache.org/