如何在HTML输出中捕获整个块?块内是一个未打开的“noscript”标签。
我在nginx上使用subs_filter,意味着任何基于DOM的解决方案都不适用于此。
...
<div id="me_104" >
<img src="http://www.google.com" alt="" style="position: absolute; left:0; top: 0; width: 0px; height: 0px;" />
<iframe id="zz_3423_543534" name="zz_3423_543534_54635677" src="http://google.com" width="400" height="80" scrolling="no" frameborder="0" allowtransparency="true" marginwidth="0" marginheight="0"></iframe></noscript>
</div>
...
答案 0 :(得分:1)
你可以试试这个正则表达式:
<div\s+id\s*=\s*"me_\d+"\s*>\s*<img[^>]+>\s*<iframe[^>]+></iframe></noscript>\s*</div>
答案 1 :(得分:1)
如果div中没有其他div,你可以尝试这样的事情:
<div id="me_104" >.*?</noscript>.*?</div>
或
<div.*?>.*?</noscript>.*?</div>
或像Alex这样的东西确定了开场div
如果你只想匹配没有开放的noscript标签,你可以使用这样的否定前瞻:
<div.*?>(?:(?!<noscript>|</div>).)*</noscript>.*?</div>
您必须使用“dot matches newlines”标志。
或者这样做:
<div.*?>(?:(?!<noscript>|<\/div>)(?:.|\n))*<\/noscript>(?:.|\n)*?<\/div>
请参阅here