找回密码
 加入
搜索
查看: 17790|回复: 52

[网络通信] [已解决]这个网页中的内容用正则怎么提取

 火... [复制链接]
发表于 2011-11-25 16:04:07 | 显示全部楼层 |阅读模式
本帖最后由 卫和谐 于 2011-11-25 21:50 编辑

<tr>
                <td width="10%" align="center" valign="middle" bgcolor="#FFFFFF">1</td>
                <td width="70%" align="left" valign="top" bgcolor="#FFFFFF"><a href="Info.aspx?id=55755" target="_blank"> 王某某</a></td>
                <td width="25%" align="center" valign="middle" bgcolor="#FFFFFF"> 1000票</td>
              </tr>

从上面代码中提取“王某某”     和 “1000票”这两个值?
不会正则,谁能够帮助 下!



在AFANR的帮助下已经解决!
发表于 2011-11-25 16:19:45 | 显示全部楼层
StringRegExp($text,'<a.*>\s*(.+)</a>.*\n.+>\s*(.+)</td>',1)
 楼主| 发表于 2011-11-25 16:45:13 | 显示全部楼层
回复 2# xms77


    谢谢,你这个只能提取第二个值~!
发表于 2011-11-25 17:15:08 | 显示全部楼层
(?m)(?=bgcolor).*?">(\V+)</

(?m)(?=bgcolor).*?">(\W+)</

两个一起取,搞不定,等高人。。。。正则很神奇。。。
发表于 2011-11-25 17:36:33 | 显示全部楼层
本帖最后由 republican 于 2011-11-25 17:40 编辑

回复 1# 卫和谐

StringRegExp($text,'>(\s.*?)<',3)

去空格,奇数组:

StringRegExp($text,'>(\s(.*?))<',3)
 楼主| 发表于 2011-11-25 18:03:07 | 显示全部楼层
回复 5# republican

还是不对啊
 楼主| 发表于 2011-11-25 18:17:44 | 显示全部楼层
一个一个的提取......
发表于 2011-11-25 19:04:24 | 显示全部楼层
#include <Array.au3>
Local $Str = _
                '<tr>' & @CRLF & _
                '                <td width="10%" align="center" valign="middle" bgcolor="#FFFFFF">1</td>' & @CRLF & _
                '                <td width="70%" align="left" valign="top" bgcolor="#FFFFFF"><a href="Info.aspx?id=55755" target="_blank"> 王某某</a></td>' & @CRLF & _
                '                <td width="25%" align="center" valign="middle" bgcolor="#FFFFFF"> 1000票</td>' & @CRLF & _
                '              </tr>' & @CRLF
;MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '(?s)id=[^>]+>\h*(.+?)<.+?>\h*([^<]+票)', 3)
;If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($Test), '其中[0]元素为: ' & $Test[0])
_ArrayDisplay($Test, UBound($Test))
 楼主| 发表于 2011-11-25 19:08:38 | 显示全部楼层
回复 8# afan


    我是想要分开来提取,就是一个正则提取"王某某"这部分,另一个正则提取"1000票"这部分!
发表于 2011-11-25 19:11:40 | 显示全部楼层
本帖最后由 afan 于 2011-11-25 19:18 编辑
回复  afan


    我是想要分开来提取,就是一个正则提取"王某某"这部分,另一个正则提取"1000票"这部分!
卫和谐 发表于 2011-11-25 19:08



    兄弟重口味呀…
id=[^>]+>\h*(.+?)<
>\h*([^<]+票)
 楼主| 发表于 2011-11-25 19:16:33 | 显示全部楼层
本帖最后由 卫和谐 于 2011-11-25 19:17 编辑

回复 10# afan

测试了一下不行啊.....因为有个票字在里面,导致混乱了!
发表于 2011-11-25 19:17:27 | 显示全部楼层
回复 11# 卫和谐


    除非你的源字符串不对……
 楼主| 发表于 2011-11-25 19:18:14 | 显示全部楼层
回复 12# afan


    因为有个票字在里面,导致混乱了!
发表于 2011-11-25 19:20:16 | 显示全部楼层
回复 13# 卫和谐


    票字不是关键字吗?有的地方没有?你需要提供更多的条件
 楼主| 发表于 2011-11-25 19:22:56 | 显示全部楼层
本帖最后由 卫和谐 于 2011-11-25 19:24 编辑

回复 14# afan

    5楼的:'>(\s.*?)<',3
是可以提取1000票这部分,可是前面多了个:     &nbsp;&nbsp;
没关键字,只是想分别提取"王某某"和"1000票"这两部分!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 20:24 , Processed in 0.086414 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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