查找提取出html 里面的联系人信息(公司名称,电话,地址等),用pos和copy 还是用正则 来提取、?具体怎么实现?

路口xia车 2011-12-30 02:45:45
查找提取出html 里面的联系人信息(公司名称,电话,地址等),
用pos和copy 还是用正则 来提取、?
具体怎么实现?
有没有delphi达人来帮一下我的忙啊。
谢谢了。
...全文
566 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaoyiping 2012-01-17
  • 打赏
  • 举报
回复
delphi实现正则有点难度(我没有用过)

我这有几个以前做项目写的几个函数,有用就拿去



function FindStr(ShortStr: string; LongStrIng: string): Integer;
//在一个字符串中找某个字符的位置
var
locality: integer;
begin
locality := Pos(ShortStr, LongStrIng);
if locality = 0 then
Result := 0
else
Result := locality;
end;

//取得某个字符后所有字符

function getends(s, s1: string): string;
var
i1, i2: integer;
begin
i1 := FindStr(s1, s) + length(s1);
i2 := length(s);
result := copy(s, i1, i2 - i1 + 1);

end;

function copyab(s, s1: string; s2: string): string;
var
i1, i2: integer;
begin
i1 := pos(s1, s);
i2 := pos(s2, s);

result := copy(s, i1 + length(s1), i2 - i1 - length(s1));

end;

function formattext(s: string): string;
begin
s := trim(s);
s := stringreplace(s, #13, '', [rfreplaceall]);
s := stringreplace(s, #13#10, '', [rfreplaceall]);
s := stringreplace(s, #10#13, '', [rfreplaceall]);
s := stringreplace(s, #10, '', [rfreplaceall]);
s := stringreplace(s, ' ', '|', [rfreplaceall]);
s := stringreplace(s, ' ', '', [rfreplaceall]);

s := stringreplace(s, ' ', '', [rfreplaceall]);
s := stringreplace(s, ' ', '', [rfreplaceall]);
result := s;
end;

procedure SeparateTerms(s: string; Separator: char; Terms: TStringList);
//分割字符串过程
var
hs: string;
p: integer;
begin
Terms.Clear; // 清除字符串中的内容
if Length(s) = 0 then // 长度为0
Exit;
p := Pos(Separator, s);
while P <> 0 do
begin
hs := Copy(s, 1, p - 1); // 复制字符
Terms.Add(hs); // 添加到列表
Delete(s, 1, p); // 删除字符和分割符
p := Pos(Separator, s); // 查找分割符
end;
if Length(s) > 0 then
Terms.Add(s); // 添加剩下的条目
end;

function delm(s: string): string;

begin
if pos(':', s) = 1 then
result := stringreplace(s, ':', '', [rfreplaceall])

else
result := s;

end;

//格式化后不保留回车


function ReplaceSub(str, sub1, sub2: string): string;
var
aPos: Integer;
rslt: string;
begin
aPos := Pos(sub1, str);
//取得子字符串的位置
rslt := '';
while (aPos <> 0) do
begin
rslt := rslt + Copy(str, 1, aPos - 1) + sub2;
Delete(str, 1, aPos + Length(sub1));
//删除要替换的字符串
aPos := Pos(sub1, str);
end;
Result := rslt + str;
//添加要字符串
end;



路口xia车 2012-01-13
  • 打赏
  • 举报
回复
自己顶顶。
advancejar 2012-01-09
  • 打赏
  • 举报
回复
delphi 7 的正则不是原生的,后来我改用python来做了
路口xia车 2012-01-09
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 zsmd000 的回复:]
当然是正则表达式啦 快速准确!
另外 不知道楼主顶上去想要表达什么 楼上的几十个回复不是已经很清楚了吗?
[/Quote]
呵呵 想找个正则匹配网上所有的电话号码(国内外所有国家),,不知道有木有
鐵蛋 2012-01-09
  • 打赏
  • 举报
回复
用正则表达式,有一个perl单元
jet_piolet 2012-01-06
  • 打赏
  • 举报
回复
用易语言的工具,可以快速分析网页,匹配自己的正则,对编写这一类的软件很有帮助。
千荒 2012-01-06
  • 打赏
  • 举报
回复
当然是正则表达式啦 快速准确!
另外 不知道楼主顶上去想要表达什么 楼上的几十个回复不是已经很清楚了吗?
山东蓝鸟贵薪 2012-01-05
  • 打赏
  • 举报
回复
你可以在HTML中读取格式,并取出相关参数即可
路口xia车 2012-01-04
  • 打赏
  • 举报
回复

继续顶
路口xia车 2011-12-31
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 kaikai_kk 的回复:]
你的问题不明确,无法帮你

你的问题就像,给你一编文章,你把里面的地址找出来,虽然我们知道地址都是省市镇街村什么什么的
但是你要求是能够智能的去分析他是不是地址,这就难了,比如找到了这些词:小三街小四村,你说他算地址吗?你要告诉我们规则啊,那些才算
[/Quote]

就是没有规则。所以我才纠结
haitao 2011-12-31
  • 打赏
  • 举报
回复
应该把具体的html里的地址、电话的出现的上下文分析好了,才知道该按什么tag去提取
kaikai_kk 2011-12-31
  • 打赏
  • 举报
回复
你的问题不明确,无法帮你

你的问题就像,给你一编文章,你把里面的地址找出来,虽然我们知道地址都是省市镇街村什么什么的
但是你要求是能够智能的去分析他是不是地址,这就难了,比如找到了这些词:小三街小四村,你说他算地址吗?你要告诉我们规则啊,那些才算
路口xia车 2011-12-31
  • 打赏
  • 举报
回复
新的一天 自己顶下。期待更多的人来解答
ADSLAN 2011-12-30
  • 打赏
  • 举报
回复
提取文本 当然最好的就是用正则了 又快又准确
维护也简单
路口xia车 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 kaikai_kk 的回复:]
那怎么判别那些字符是公司名称,电话,地址。。。
[/Quote]
嘿嘿 我就是想知道这个。。所有才来 问问 有木有大佬 有经验。
kaikai_kk 2011-12-30
  • 打赏
  • 举报
回复
那怎么判别那些字符是公司名称,电话,地址。。。
路口xia车 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 kaikai_kk 的回复:]
用pos和copy,正则应该都可以

不过你要讲清楚公司名称,电话,地址 。。。等等要取的内容是放在什么标签里面
或者是什么的格式才算是要取的内容
[/Quote]
这么讲 我要把所有 我获取到的html 源码里面的 相关内容全部提取出来 有点不显示额(标签很多表达方式都不一样);
kaikai_kk 2011-12-30
  • 打赏
  • 举报
回复
用pos和copy,正则应该都可以

不过你要讲清楚公司名称,电话,地址 。。。等等要取的内容是放在什么标签里面
或者是什么的格式才算是要取的内容
山东蓝鸟贵薪 2011-12-30
  • 打赏
  • 举报
回复
最好的方法是建议你跟踪每一步操作,并显示其结果
查看过程
山东蓝鸟贵薪 2011-12-30
  • 打赏
  • 举报
回复
建议你还是在文件中查找“相关”的关键字
再针对性的处理即可
加载更多回复(7)

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧