zch11230 发表于 2012-1-29 15:56:05

【已解决】如何用正则匹配多个条件

本帖最后由 zch11230 于 2012-1-29 18:37 编辑

比如我需要提取到论坛里面贴子的标题和链接单独提取标题或链接ID没问题,看帮助说用|符号可以匹配多个条件,但是怎么写也没成功发贴求教。

ID是纯数字,但长度不一定,标题内容不一定 而且有的标题可能有颜色 多了一句font color=
最终想得到这样的结果
111111,xxxxxx
222222,yyyyyy
333333,zzzzzz
或者这样意思就是说标题和链接的ID要对应$i和$i+1对应为一篇帖子。
111111
xxxxxx
222222
yyyyyy
333333
zzzzzz
<a name=111111></a><a href="read-htm-tid-111111-fpage-1.html" id="a_ajax_111111" class="subject"><font color=#FF0000>xxxxxx</font></a>&nbsp;<span class='gray tpage'>
<a name=222222></a><a href="read-htm-tid-222222-fpage-1.html" id="a_ajax_222222" class="subject">yyyyyy</a>&nbsp;<span class='gray tpage'>
<a name=333333></a><a href="read-htm-tid-333333-fpage-1.html" id="a_ajax_333333" class="subject">zzzzzz</a>&nbsp;<span class='gray tpage'>



user3000 发表于 2012-1-29 16:35:50

按这样的条件,这个还算好提取吧.
(只是个人见解, 希望起抛砖引玉之效!)
#include<array.au3>
Local $str = '<a name=111111></a><a href="read-htm-tid-111111-fpage-1.html" id="a_ajax_111111" class="subject"><font color=#FF0000>xxxxxx</font></a>&nbsp;' & "<span class='gray tpage'>" & @CRLF & _
'<a name=222222></a><a href="read-htm-tid-222222-fpage-1.html" id="a_ajax_222222" class="subject">yyyyyy</a>&nbsp;' & "<span class='gray tpage'>" & @CRLF & _
'<a name=333333></a><a href="read-htm-tid-333333-fpage-1.html" id="a_ajax_333333" class="subject">zzzzzz</a>&nbsp;' & "<span class='gray tpage'>"

MsgBox(0, '', $str)
Local $result = StringRegExp($str, 'name=(\d+).+subject">(?:<font[^>]+>)?([^>]+)<', 3)
_ArrayDisplay($result)

zch11230 发表于 2012-1-29 18:34:41

回复 2# user3000
非常感谢 在帮助里看到过?:的介绍 ,但是就是没有想到在这里可以这样用,感觉就像是以前背书,能背下来却不知道内容是什么意思,看来还得继续努力理解实践啊。。
页: [1]
查看完整版本: 【已解决】如何用正则匹配多个条件