| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6426 人关注过本帖, 1 人收藏
标题:版主,来改标题(快速提取电话号码)
只看楼主 加入收藏
远方010
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:41
专家分:13
注 册:2012-10-15
收藏
得分:9 
我来拿个回帖分

路途皆是迷路客,一语还归大道中。
2012-10-20 20:25
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:9 
不成熟,只是另一种思路,楼主看快不快:
SET COMPATIBLE ON
SET safety off
n=FILETOSTR("e:\1.htm")
n123=CHRTRAN(n,"1234567890->","")
ntel=CHRTRAN(n,n123,"")
ntel=CHRTRAN(ntel,">"," ")
STRTOFILE(ntel,"e:\1.txt")
xz=""

FOR i= 1 to FSIZE("e:\1.txt")
    xn=    SUBSTR(ntel,i,1)
    IF BETWEEN(ASC(xn),45,57)
        xz=xz+xn
    ELSE
        IF LEN(xz)=7.or.len(xz)=11 .or.len(xz)=12
            ?xz
        ENDIF
        xz=""
    ENDIF
NEXT

相互学习,互相交流,共同提高。
2012-10-21 12:17
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:9 
学习

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-10-21 13:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我在提取11位手机号的时候把营业执照和机构代码号都提出来了 还得处理一下。
还有一种是flash的clsid是疑似电话号码的东西

[ 本帖最后由 TonyDeng 于 2012-10-21 13:50 编辑 ]

授人以渔,不授人以鱼。
2012-10-21 13:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

授人以渔,不授人以鱼。
2012-10-21 14:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

授人以渔,不授人以鱼。
2012-10-21 14:07
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
收藏
得分:0 
向高手学习

我是来向高手学习的!
2012-10-21 14:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
CLEAR
DIMENSION aTemplets[4]
aTemplets[1] = "19999999999"
aTemplets[2] = "99-999-99999999"
aTemplets[3] = "999-99999999"
aTemplets[4] = "9999999"
nFile = FOPEN("2.htm")
DO WHILE !FEOF(nFile)
    cText = FGETS(nFile)
    FOR nIndex = 1 TO ALEN(aTemplets,1)
        cBuffer = cText
        cResult = ""
        nPos = FindAs(aTemplets[nIndex], cBuffer, @cResult)
        DO WHILE nPos > 0
            ? cResult
            cBuffer = SUBSTR(cBuffer, nPos + LEN(aTemplets[nIndex]))
            nPos = FindAs(aTemplets[nIndex], cBuffer, @cResult)
        ENDDO
    NEXT
ENDDO
FCLOSE(nFile)
RETURN 

FUNCTION FindAs(tcTemplet, tcString, tcResult)
    LOCAL lnIndex, lnCount, llFound
    LOCAL lnPos, lcCharacter
   
    lnPos = 0
    tcResult = ""
   
    IF LEN(tcTemplet) > LEN(tcString)
        RETURN lnPos
    ENDIF
   
    FOR lnIndex = 1 TO LEN(tcString)
        IF ISDIGIT(SUBSTR(tcString, lnIndex, 1))
            lnPos = lnIndex
            llFound = .T.
            FOR lnCount = 1 TO LEN(tcTemplet)
                lcCharacter = SUBSTR(tcString, lnIndex + lnCount - 1, 1)
                IF (SUBSTR(tcTemplet, lnCount, 1) == '9') .AND. ISDIGIT(lcCharacter)
                    tcResult = tcResult + lcCharacter
                ELSE
                    IF lcCharacter == SUBSTR(tcTemplet, lnCount, 1)
                        tcResult = tcResult + lcCharacter
                    ELSE
                        llFound = .F.
                        lnPos = 0
                        tcResult = ""
                        EXIT
                    ENDIF
                ENDIF
            NEXT
            IF llFound
                EXIT
            ENDIF
            lnIndex = lnIndex + lnCount - 1
        ENDIF
    NEXT
   
    RETURN lnPos
   
ENDFUNC


第二个网页没有识别出flash的clsid,第一个电话是错的。得看看有什么办法。
现在对同一行扫描了4次(模板数组的元素数目),要优化的话,应在查找函数中一次扫完。晚上再看看。

[ 本帖最后由 TonyDeng 于 2012-10-21 14:32 编辑 ]

授人以渔,不授人以鱼。
2012-10-21 14:15
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:9 
程序代码:
CLEAR
CSTR=[]
FOR I=1 TO 30
URL =[http://shuma.]+TRANSFORM(I)+[.html]
HTTP = CREATEOBJECT("MICROSOFT.XMLHTTP")
HTTP.OPEN("GET", URL,.F.)
HTTP.SEND
MSG = HTTP.RESPONSETEXT
MSG=STRCONV(STRCONV(MSG,11),2)
FOR J=1 TO OCCURS([<li class="ot"><span>???],MSG)
    CSTR=CSTR+STREXTRACT(MSG,[<li class="ot"><span>???],[</span><span>],J)+CHR(13)+CHR(10)
ENDFOR
ENDFOR
=STRTOFILE(CSTR,[TT.TXT])
MODIFY FILE TT.TXT
代码不是太完善(提取的网页内容为UTF-8格式,没转换到位),但能达到楼主的要求。
2012-10-21 16:18
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
TT.rar (6.96 KB)

这是提取的电话号码
2012-10-21 16:20
快速回复:版主,来改标题(快速提取电话号码)
数据加载中...
 
   



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

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