查找提取出html 里面的联系人信息(公司名称,电话,地址等),用pos和copy 还是用正则 来提取、具体如何实现
查找提取出html 里面的联系人信息(公司名称,电话,地址等),用pos和copy 还是用正则 来提取、?具体怎么实现?
查找提取出html 里面的联系人信息(公司名称,电话,地址等),
用pos和copy 还是用正则 来提取、?
具体怎么实现?
有没有delphi达人来帮一下我的忙啊。
谢谢了。
------解决方案--------------------
建议你还是在文件中查找“相关”的关键字
再针对性的处理即可
------解决方案--------------------
用pos和copy,正则应该都可以
不过你要讲清楚公司名称,电话,地址 。。。等等要取的内容是放在什么标签里面
或者是什么的格式才算是要取的内容
------解决方案--------------------
你可以在HTML中读取格式,并取出相关参数即可
------解决方案--------------------
用易语言的工具,可以快速分析网页,匹配自己的正则,对编写这一类的软件很有帮助。
------解决方案--------------------
当然是正则表达式啦 快速准确!
另外 不知道楼主顶上去想要表达什么 楼上的几十个回复不是已经很清楚了吗?
------解决方案--------------------
delphi 7 的正则不是原生的,后来我改用python来做了
------解决方案--------------------
用正则表达式,有一个perl单元
------解决方案--------------------
delphi实现正则有点难度(我没有用过)
我这有几个以前做项目写的几个函数,有用就拿去
查找提取出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;