使用Regex </ul>抓取<ul>标签内的所有内容

时间:2011-08-07 20:19:50

标签: html regex tags dreamweaver

我继承了一个网站,其中我必须更新大约3500个文件,每个文件的内容都非常95%(产品页面)。

为了进行一些更改,我使用Regex(在Dreamweaver中)进行批量编辑。

我已经把所有事情都搞定了,但我遇到了标签内容的问题。

我需要能够抓取该标签中的所有内容,并在我替换页面上的其他内容时将其保存(这是内容因页面而异的少数内容之一)。

以下是一个例子:

<ul>
<li style="padding-top:10px; text-align:right;"><a href="http://www.website.com/additem.wws?Sku=ABC123&sup=AAA&mfr=BBB&price=99.99&core=10.00&qty=1&description=ITEM">Single Item - $99.99 <img src="../../images/buy-now-button.gif" alt="Buy Now" width="50" height="20" border="0">&nbsp;&nbsp;&nbsp;&nbsp;</a></li>
<li style="padding-top:10px; text-align:right;"><a href="http://www.website.com/additem.wws?Sku=ABC123-6&sup=AAA&mfr=BBB&price=299.99&core=60.00&qty=1&description=INJECTOR"><strong>Set of 6 Items - $299.99</strong> <img src="../../images/buy-now-button.gif" alt="Buy Now" width="50" height="20" border="0">&nbsp;&nbsp;&nbsp;&nbsp;</a></li>
<li style="padding-top:10px"><img src="../../images/free_shipping.jpg" alt="Free Upgrade." width="227" height="107">  </li>
</ul>

我会更加个性化,并在单个<li>标签中获取内容,但问题是某些网页在<li>内只有一个<ul>,或者最多6个关于该页面上的产品变化数量。

所以我的整体问题是:如何获取给定标记内的所有内容(包括新行,其他标记等),并在需要替换其余内容时保存它?我知道如何在内容周围使用括号,然后在替换部分使用$#。

到目前为止,我所使用的网站规模要小得多,而且我对Regex并不太需要,因为通常更容易手动更改或仅使用查找/替换中的文字文本。

1 个答案:

答案 0 :(得分:7)

这些网页有多复杂?如果<ul>元素永远不会嵌套在其他<ul>元素中,并且您不必处理内部的伪造标记(例如)SGML注释或CDATA部分,这可能就是您所需要的:

<ul>[\s\S]*?</ul>

[\s\S]是如何在JavaScript正则表达式中匹配任何字符,包括换行符(这是Dreamweaver使用的,或者我已经阅读过)。

*?告诉它匹配零或更多,不情愿 - 这意味着一旦正则表达式的下一部分(</ul>)匹配,它就会退出匹配。