m765555 发表于 2019-5-28 23:39:42

请教一下正则提取问题[已解决]

本帖最后由 m765555 于 2019-5-29 21:11 编辑

请教一下各位正则高手们,正则一直不是很懂,请各位指教:
我想获取下图中1,2,3处,可以用一句正则一次性提取吗?然后用${1}和${2}和${3}直接调用就好了.
三处地方,如果单独提取的话,我能提取出,(单独提取的一处的正则就不要放了),但感觉效率太低,网页源码中有这样相同的div很多组,每组我都想提取这样3处.
下面是网页中其中一组代码:
    <div class="tt-yes">
                              <a href="/hh/rer76jhkkjkju.html" target="_blank">
                                        <div class="myfile-by">
                                                <div class="pc-this"><img src="/d/file/p/2018/07-03/pc09c1f72e98e5y4e887b65e8823cbf6.jpg" alt="产品编号"></div>
                                        </div>
                                        <div class="myfile-jt">
                                                <h3 class="jt-name">产品编号</h3>
                                                <span class="jt-xh">具体编号</span>
                                        </div>
                              </a>
                        </div>我想要的3处,如图(图片点击放大看)

afan 发表于 2019-5-29 10:57:18

#include <Array.au3>
Local $sSource = _
                '    <div class="tt-yes">' & @CRLF & _
                '                              <a href="/hh/rer76jhkkjkju.html" target="_blank">' & @CRLF & _
                '                                        <div class="myfile-by">' & @CRLF & _
                '                                                <div class="pc-this"><img src="/d/file/p/2018/07-03/pc09c1f72e98e5y4e887b65e8823cbf6.jpg" alt="产品编号"></div>' & @CRLF & _
                '                                        </div>' & @CRLF & _
                '                                        <div class="myfile-jt">' & @CRLF & _
                '                                                <h3 class="jt-name">产品编号</h3>' & @CRLF & _
                '                                                <span class="jt-xh">具体编号</span>' & @CRLF & _
                '                                        </div>' & @CRLF & _
                '                              </a>' & @CRLF & _
                '                        </div>'
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '(?si)<div\V+?src="([^"]+)"\h*alt="([^"]+)"></div>.+?">([^<]+)</span>\s+</div>', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中元素为: ' & $aSRE)
_ArrayDisplay($aSRE, UBound($aSRE))

m765555 发表于 2019-5-29 21:00:33

感谢A版,我仔细研究一下你这段正则,学习了!

862228699 发表于 2019-5-30 09:34:56


用的AFAN的正则工具,继续学习中。。

m765555 发表于 2019-5-31 00:05:49

这个也不错,感谢分享.
页: [1]
查看完整版本: 请教一下正则提取问题[已解决]