| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6426 人关注过本帖, 1 人收藏
标题:版主,来改标题(快速提取电话号码)
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用taohua300在2012-10-24 08:30:20的发言:

是“午”空的“午”

梅尚程荀
马谭杨奚







                                                       
2012-10-25 10:03
hgfeng1984
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:139
专家分:513
注 册:2006-3-26
收藏
得分:9 
我觉得问题可以分两步:
1.网页获取文本信息。
2.对文本信息的搜索。

看了lz另外一个贴,相信第一地点对lz来说应该没什么问题。
第二点我觉得可以用 正则表达式 来处理,晚上回去试试。
这样的规则:1\d{10}|((0(\d{3}|\d{2}))-)?\d{7,8}(-\d*)?


[ 本帖最后由 hgfeng1984 于 2012-10-26 16:38 编辑 ]
2012-10-26 16:09
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:0 
回复 112楼 hgfeng1984
哪一个贴 ?
貌似我在坛子里只发过一个贴啊

等高手代码看看
还没有在vfp中使用过正则表达式
不知道怎么用

个性太多,无法显示
2012-10-26 17:16
hgfeng1984
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:139
专家分:513
注 册:2006-3-26
收藏
得分:0 
貌似我没的传图片和附件,以下图片是我搜索 电话企业列表.htm 的结果。

" border="0" />

规则是网上找的,自己改了下。
以下为代码,替换红字部分为 电话企业列表.htm 的文本,执行看结果。
获取网页内容的我就不写了。
以下代码:
-------------------------------分隔线-------------------------------

Clear
lcPatrn='1\d{10}|((\d{4}|\d{3}|\d{2})-)?((\d{4}|\d{3}|\d{2})-)?\d{7,8}(-\d*)?' &&规则

TEXT TO lcString NOSHOW
这里是你要搜索的文本内容.
ENDTEXT
 
PUBLIC RegEx,nTime
 nTime=SECONDS()
 regEx = CreateObject("VBScript.RegExp")
 regEx.Pattern = lcPatrn
 regEx.IgnoreCase = .F.
 regEx.Global = .T.
 Matches=regEx.Execute(lcString)
 lcGs=ALLTRIM(STR(regEx.Execute(lcString).Count))
 RetStr='元素个数:'+lcGs+CHR(13)+CHR(10)
 For Each Matches In Matches
     RetStr=RetStr+"位置: "+PADR(Ltrim(Str(Matches.FirstIndex)),8)
     RetStr=RetStr+"长度: "+PADR(Ltrim(Str(Matches.Length)),4)
     RetStr=RetStr+"值: "+Matches.Value+CHR(13)
 NEXT

 nTime=SECONDS()-nTime
 IF EMPTY(RetStr)
 ?'无结果'
 ELSE
 ?[用时:]+STR(nTime,7,5)+[秒]
 ?RetStr
 ENDIF
 
-------------------------------分隔线-------------------------------
元素个数:37
位置: 9769    长度: 12  值: 024-83893518
位置: 10105   长度: 12  值: 024-83893518
位置: 10461   长度: 8   值: 61025525
位置: 10806   长度: 11  值: 13088824955
位置: 11154   长度: 13  值: 0512-68052095
位置: 11534   长度: 11  值: 13771807525
位置: 11924   长度: 12  值: 020-87356358
位置: 12277   长度: 12  值: 021-66058069
位置: 12623   长度: 14  值: 86-25-84714861
位置: 12973   长度: 14  值: 86-21-52600668
位置: 13330   长度: 14  值: 86-21-68887776
位置: 13673   长度: 15  值: 86-0769-4806666
位置: 14002   长度: 16  值: 86-0371-68058285
位置: 14334   长度: 16  值: 86-0595-85756966
位置: 14704   长度: 20  值: 86-0775-83516711-812
位置: 14988   长度: 8   值: 22030023
位置: 15011   长度: 10  值: 78264097-6
位置: 15088   长度: 15  值: 86-0434-5013000
位置: 15388   长度: 15  值: 86-021-13761818
位置: 15754   长度: 14  值: 86-316-5916190
位置: 16116   长度: 14  值: 86-21-51696272
位置: 16485   长度: 15  值: 86-022-23022288
位置: 16846   长度: 14  值: 86-28-68591406
位置: 17208   长度: 15  值: 86-021-62429512
位置: 17564   长度: 16  值: 86-0755-27088877
位置: 17915   长度: 16  值: 86-0755-27088877
位置: 18638   长度: 15  值: 86-021-56904487
位置: 18988   长度: 14  值: 86-769-2337525
位置: 19350   长度: 15  值: 86-020-87597926
位置: 19729   长度: 15  值: 86-020-38204260
位置: 20101   长度: 16  值: 86-0755-29847423
位置: 20470   长度: 15  值: 86-0535-6249967
位置: 20825   长度: 16  值: 86-0769-22756985
位置: 21200   长度: 15  值: 86-010-64937625
位置: 21560   长度: 16  值: 86-0755-82205330
位置: 21910   长度: 15  值: 86-020-84229708
位置: 22271   长度: 15  值: 86-021-61028676



[ 本帖最后由 hgfeng1984 于 2012-10-28 01:24 编辑 ]
2012-10-26 18:10
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:0 
vfp 调用 VBScript 使用正则表达式 ?

这个有意思

貌似正则的效率要高

个性太多,无法显示
2012-10-26 20:13
远方010
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:41
专家分:13
注 册:2012-10-15
收藏
得分:0 
都是技术控

路途皆是迷路客,一语还归大道中。
2012-10-29 16:48
快速回复:版主,来改标题(快速提取电话号码)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026162 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved