我有大约1500个html文件,并且所有这些文件都在<audio>
标记内有一个html <main>
标记,通常位于<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>
每个音频标签都是每页自定义的。
每个页面都不同。
我通常使用记事本++,我正在使用Windows环境。
没有javascript。必须直接对html文件执行此操作。
编辑:为了清晰而编辑,对不起。
答案 0 :(得分:1)
我认为有点可以实现,但我可以看到许多陷阱。
1500个文件是批次的文件,所以我可以看到你想要自动化的原因。但是,在此结束时,您仍然需要验证每个人是否已达成您的预期,因为正如您所说:
每个音频标签都是每页自定义的。
每个页面都不同。
无论如何,进入&#34;解决方案&#34;这会让你更接近你需要的东西。
这是我取得了一些成功:
打破它......
<main(.*)(<audio.*?</audio>)(.*)</main>
<main(.*)
这是找到<main>
标记后跟包含换行符的任何内容,因为我们选择了matches newline
选项。我们正在保留组中的内容(由括号表示),因为我们稍后会在替换中使用它。
(<audio.*?</audio>)
这是找到并保留完整的<audio>
标记。
(.*)</main>
这是在<audio>
标记之后但在结束</main>
标记之前找到任何内容,并保留它。
<main$1$3$2\r\n</main>
<main$1
我们需要放回开头<main>
标记,因为我们没有抓住它。 $ 1包含我们捕获的第一批内容,所以我们现在把它放回去。
$3
现在我们放回了在第3组中捕获的<audio>
标记后找到的任何内容。
$2\r\n<main>
现在我们放回音频标签本身,新行和结束</main>
标签。
以上是基于您的简单示例。这不是现实世界&#34; HTML。
超过1500个HTML文件我非常怀疑这对每个文件都有效。有些将以奇怪的方式构建,以防止它完全按照您的要求进行操作。