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

查找提取出html 里面的联系人信息(公司名称,电话,地址等),用pos和copy 还是用正则 来提取、?具体怎么实现?
查找提取出html 里面的联系人信息(公司名称,电话,地址等),
用pos和copy 还是用正则 来提取、? 
具体怎么实现?
 有没有delphi达人来帮一下我的忙啊。
  谢谢了。

------解决方案--------------------
建议你还是在文件中查找“相关”的关键字
再针对性的处理即可

------解决方案--------------------
用pos和copy,正则应该都可以

不过你要讲清楚公司名称,电话,地址 。。。等等要取的内容是放在什么标签里面
或者是什么的格式才算是要取的内容
------解决方案--------------------
你可以在HTML中读取格式,并取出相关参数即可

------解决方案--------------------
用易语言的工具,可以快速分析网页,匹配自己的正则,对编写这一类的软件很有帮助。
------解决方案--------------------
当然是正则表达式啦 快速准确!
另外 不知道楼主顶上去想要表达什么 楼上的几十个回复不是已经很清楚了吗?
------解决方案--------------------
delphi 7 的正则不是原生的,后来我改用python来做了
------解决方案--------------------
用正则表达式,有一个perl单元
------解决方案--------------------
delphi实现正则有点难度(我没有用过)

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

Delphi(Pascal) code


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;