使用文本编辑器自动移动 HTML tags/elements
Moving HTML tags/elements automatically with text editor
我有大约 1500 个 html 文件,所有文件在 <main>
标签内都有一个 html <audio>
标签,通常位于 <main>
标签。
我们需要将所有这些 <audio>
标签移到结束 </main>
标签之前。
既然我们讨论的是 1500 个 html 文件,有没有办法自动执行此任务?
为了清楚起见,我们有这样的页面:
<main>
<p>Some text</p>
<audio src="someaudio.mp3"></audio>
<p>Some text</p>
<p>Some text</p>
</main>
并想将它们修复为:
<main>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<audio src="someaudio.mp3"></audio>
</main>
每个音频标签都是针对每个页面自定义的。
每一页都不一样。
我通常使用notepad++,我在windows环境下工作。
没有javascript。这必须直接对 html 文件完成。
编辑:为清楚起见进行了编辑,对此深感抱歉。
我认为这有点是可以实现的,但我可以看到很多陷阱。
1500 个文件是 lot 个文件,所以我明白您为什么要自动化。但是,最后您仍然需要验证每个人是否按照您的预期进行,因为正如您所说:
Each audio tag is custom to each page.
Each page is different.
无论如何,找到一个能让您更接近所需的“解决方案”。
这是我取得的一些成功:
分解...
发现。
<main(.*)(<audio.*?</audio>)(.*)</main>
<main(.*)
这是在查找 <main>
标签后跟包括换行符在内的任何内容,因为我们选择了 matches newline
选项。我们保留组中的内容(用括号表示),因为稍后在替换中需要它。
(<audio.*?</audio>)
这是找到并保留完整的 <audio>
标签。
(.*)</main>
这是在 <audio>
标签之后但在结束 </main>
标签之前找到任何内容,并保留它。
替换。
<main\r\n</main>
<main
我们需要放回开始的 <main>
标签,因为我们没有捕获它。 $1 包含我们捕获的第一批内容,所以我们现在把它放回去。
</code>
现在我们放回我们在第 3 组中捕获的 <code><audio>
标签之后找到的任何内容。
\r\n<main>
现在我们放回音频标签本身,换行和结束 </main>
标签。
警告。
以上是基于您的简单示例。这不是“真实世界”HTML.
超过 1500 个 HTML 文件 我非常怀疑这是否适用于每个文件。有些会以一种奇怪的方式构建,以防止它完全按照你的要求去做。
我有大约 1500 个 html 文件,所有文件在 <main>
标签内都有一个 html <audio>
标签,通常位于 <main>
标签。
我们需要将所有这些 <audio>
标签移到结束 </main>
标签之前。
既然我们讨论的是 1500 个 html 文件,有没有办法自动执行此任务?
为了清楚起见,我们有这样的页面:
<main>
<p>Some text</p>
<audio src="someaudio.mp3"></audio>
<p>Some text</p>
<p>Some text</p>
</main>
并想将它们修复为:
<main>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<audio src="someaudio.mp3"></audio>
</main>
每个音频标签都是针对每个页面自定义的。
每一页都不一样。
我通常使用notepad++,我在windows环境下工作。
没有javascript。这必须直接对 html 文件完成。
编辑:为清楚起见进行了编辑,对此深感抱歉。
我认为这有点是可以实现的,但我可以看到很多陷阱。
1500 个文件是 lot 个文件,所以我明白您为什么要自动化。但是,最后您仍然需要验证每个人是否按照您的预期进行,因为正如您所说:
Each audio tag is custom to each page.
Each page is different.
无论如何,找到一个能让您更接近所需的“解决方案”。
这是我取得的一些成功:
分解...
发现。
<main(.*)(<audio.*?</audio>)(.*)</main>
<main(.*)
这是在查找<main>
标签后跟包括换行符在内的任何内容,因为我们选择了matches newline
选项。我们保留组中的内容(用括号表示),因为稍后在替换中需要它。(<audio.*?</audio>)
这是找到并保留完整的<audio>
标签。(.*)</main>
这是在<audio>
标签之后但在结束</main>
标签之前找到任何内容,并保留它。
替换。
<main\r\n</main>
<main
我们需要放回开始的<main>
标签,因为我们没有捕获它。 $1 包含我们捕获的第一批内容,所以我们现在把它放回去。</code> 现在我们放回我们在第 3 组中捕获的 <code><audio>
标签之后找到的任何内容。\r\n<main>
现在我们放回音频标签本身,换行和结束</main>
标签。
警告。
以上是基于您的简单示例。这不是“真实世界”HTML.
超过 1500 个 HTML 文件 我非常怀疑这是否适用于每个文件。有些会以一种奇怪的方式构建,以防止它完全按照你的要求去做。