【问题标题】:Grabbing all content within <ul> tag using Regex使用正则表达式获取 <ul> 标记中的所有内容
【发布时间】:2011-10-21 23:25:55
【问题描述】:

我继承了一个网站,我必须在其中更新大约 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>

我会更独立地在单个 &lt;li&gt; 选项卡中获取内容,但问题是某些页面在 &lt;ul&gt; 中只有一个 &lt;li&gt;,或者最多 6 个,具体取决于产品变体的数量在那个页面上。

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

到目前为止,我工作的网站要小得多,而且我对 Regex 的需求并不大,因为手动进行更改或仅在 Find/Replace 中使用文字文本通常更容易。

【问题讨论】:

  • 阅读the first answer to this question,了解为什么不应该使用正则表达式解析 HTML。
  • 搞笑。有很大帮助。关于我所做的事情的实际建议也可能有所帮助。不过还是谢谢。
  • 使用与 Dreamweaver 兼容的 HTML 解析器。通过一些非常粗略的谷歌搜索,我发现 Dreamweaver 甚至带有自己的 HTML 解析器。用那个。不要使用正则表达式来解析 HTML。
  • HTML 解析器也可以执行查找/替换功能?
  • Dreamweaver 可以对特定标签内的内容或具有特定属性的特定标签组合进行搜索和替换。取决于您到底要做什么,它可能比您想象的要容易一些,并且正则表达式将是最小的

标签: html regex tags dreamweaver


【解决方案1】:

这些网页有多复杂?如果 &lt;ul&gt; 元素从未嵌套在其他 &lt;ul&gt; 元素中,并且您不必处理(例如)SGML cmets 或 CDATA 部分中的虚假标签,那么这可能就是您所需要的:

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

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

*? 不情愿地告诉它匹配零个或多个,这意味着它会在正则表达式的下一部分 (&lt;/ul&gt;) 匹配时立即退出匹配。

【讨论】:

  • 这似乎工作得很好,谢谢!顺便说一句,我意识到这可能不是一般的最佳做法,但是这么多人为此而陷入的宗教怪诞似乎很愚蠢。 Dreamweaver 没有与查找/替换功能无缝匹配的任何其他功能。
  • 哦,别介意他们!他们就像来自The Stars My Destination 的科学人,除了“Quant Suff!”,他们喜欢鹦鹉学舌“HTML's Not Regular!”。每时每刻。它们大多是无害的——只是不要用针和墨水让它们靠近你的脸。 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-02
相关资源
最近更新 更多