我正在使用企业CMS,为了正确创建我们每周更新的下拉菜单而不重新发布整个网站,我创建了一个XML文档,其中包含各种有用的XML元素。但是,当引入与CMS的链接时,生成的XML还会输出链接的内容(页面的整个HTML
)。毋庸置疑,大约有50个项目,XML文件太大而无法在网络上使用(因为我认为它超过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之前,我知道,但似乎没有其他方法可以轻松找到并替换它。手动删除它并且每周都会再次保存文件的次数太多了。
答案 0 :(得分:1)
问题似乎是您的.
与开放标记和关闭标记之间存在的换行符不匹配。
一个简单的解决方案是添加s
标记,以便.
匹配换行符。 TextWrangler似乎支持内联修饰符(?s)
。你可以这样做:
(<page-content>)(?s)(.*?)(<\/page-content>)
有关修饰符here的更多信息。