找回密码
 加入
搜索
查看: 3495|回复: 4

[IE类操作] 【已解决】请教一个正则提取网页特定信息的问题

[复制链接]
发表于 2013-2-28 14:01:15 | 显示全部楼层 |阅读模式
本帖最后由 shendu0900 于 2013-2-28 18:14 编辑

各位大大,小弟目前正在努力专研正则表达式,无奈基础不好进展很慢,目前有一问题还望各位赐教。

是这样的,我在以下网页源码中想提取6696这个数字到数组,但是无论怎么想都想不出来特殊条件是什么,如果直接提取4位数字的话也会把5948这个数字提取出来,我考虑过直接提取6或者66开头的数字,可行,但是下面的那个5948在有些情况下也会是6或者66开头的数字,这样提取出来的结果有时候会不准确,我用风大的网页快捕可以找到6696在网页中的ID,这个ID是从13开始,每13个数字固定出现一次,就是26,39依次类推,因为我接触正则时间太短,想请教下有没有什么方法可以直接根据ID来提取数字的方法?
        <td align="center">6696</td>
                <td align="center"></td>
                <td align="center">ccav</td>
                <td align="center">5948</td>
                <td align="center">2013-02-28 09:52:33</td>
                <td align="center">2013-02-28 09:52:33</td>
                <td align="center">2013-02-28 09:52:47</td>
发表于 2013-2-28 15:27:02 | 显示全部楼层
我也是初学的 和我差不多问题 如你能接触到源码的话 能不能在 <td align="center" id=tag>6696</td>
这样就能提取了'id=tag>\s+.+?>(\d+)'
发表于 2013-2-28 15:47:22 | 显示全部楼层
回复 1# shendu0900
一则可以根据要提取的字符上下几行不同来区别,你给的例子中,明显6696和5948的下面一行是不同的。以及这两个数字出现的先后等等
再则,可以都提取后,再进一步处理呀,如你所说的13倍数来找到6696,并不非得一步正则到位嘛
 楼主| 发表于 2013-2-28 18:11:04 | 显示全部楼层
本帖最后由 shendu0900 于 2013-2-28 18:14 编辑

看来正则这条路上还要走很长了,老老实实的从头学习吧,哈哈,钻了牛角尖了,一直在想怎么在同一行找区别,就没想过往下看,往下看。。。。
 楼主| 发表于 2013-3-6 17:17:29 | 显示全部楼层
憋了6天,从头开始学,终于好歹写出来怎么提取了,算是初学者一小步吧,兴趣来了!继续努力

'\>(6\d{3}).*\s<TD align.*\>'      目前只能写成这样,继续琢磨怎么才能不限制开头数字为6
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-29 09:22 , Processed in 0.104804 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表