0

我正在使用企业 CMS,为了在不重新发布整个网站的情况下正确创建每周更新的下拉菜单,我创建了一个 XML 文档,其中包含各种有用的 XML 元素。但是,当使用 CMS 拉入链接时,生成的 XML 也会输出链接的内容(整个HTML页面)。不用说,大约有 50 个项目,XML 文件太大而无法在 Web 上使用(目前我认为它超过 600KB)。元素是<page-content>filler here</page-content>

我想要做的是使用 TextWrangler 来查找和替换所有<page-content>标签以及它们包含的内容。

我尝试了几种不同的正则表达式,但我似乎无法匹配结束标签,所以它只会继续。

这是我尝试过的:

(<page-content>)(.*?)

以上将匹配到下一个起始<page-content>标签,这不是我想要的。

(<page-content>)(.*?)(<\/page-content>)
(<page-content>)(.*?)(<\/page\-content>)

上面找不到匹配项,即使下面会找到它应该找到的 7 个匹配项。

(<content>)(.*?)(<\/content>)

我不知道是否有处理连字符的特殊方法(我对正则表达式没有经验),但如果有人可以帮助我,将不胜感激。

谢谢!

编辑:在你告诉我 Regex 并不意味着解析 HTML 之前,我知道这一点,但似乎没有其他方法可以让我轻松找到并替换它。每周手动删除并再次保存文件的次数太多。

4

1 回答 1

1

似乎问题在于.您的打开和关闭标签之间存在的换行符不匹配。

一个简单的解决方案是添加s标志以便您.匹配换行符。TextWrangler 似乎支持内联修饰符(?s)。你可以这样做:

(<page-content>)(?s)(.*?)(<\/page-content>)

更多关于修饰符的信息在这里

于 2013-08-21T15:38:34.367 回答