起因

最近把虾米的曲风分派的页面全部扒拉下来了,每个一级页面里有三个子页面,子页面是从这个一级页面的A标签打开的。困扰了几天没有好的办法进行页面的整合,数据量太大,如果一个个手动改的话,得猴年马月去了。突然灵光一现,想出了一个解决办法,不到10分钟的时间就全部搞定了。

曲风分派保存的都是静态的html,所以里面A标签的链接还全部都是虾米的链接,故需要去替换,一个主页面就需要修改三处地方,共计21个大分类,523个小类,也就是说主页一个一个改的话,也要改523个页面。而且子页面保存出来的文件名也不一致,是按时间命名的,也没办法批量替换。

目录结构和文件名大概如下:

├── 电子
|   ├── 女巫浩室 Witch House
|   |   └── 女巫浩室 Witch House 曲风流派 - 虾米音乐 (2021_2_1 上午11_22_55).html
|   |   └── 相关曲目 - 女巫浩室 Witch House 曲风流派 - 虾米音乐 (2021_2_1 上午11_22_44).html
|   |   └── 相关专辑 - 女巫浩室 Witch House 曲风流派 - 虾米音乐 (2021_2_1 上午11_22_55).html
|   |   └── 相关艺人 - 女巫浩室 Witch House 曲风流派 - 虾米音乐 (2021_2_1 上午11_23_07).html
|   ├── 蒸汽波 Vaporwave
|   |   └── 蒸汽波 Vaporwave 曲风流派 - 虾米音乐 (2021_1_29 下午8_58_00).html
|   |   └── 相关曲目 - 蒸汽波 Vaporwave 曲风流派 - 虾米音乐 (2021_1_29 下午8_58_48).html
|   |   └── 相关专辑 - 蒸汽波 Vaporwave 曲风流派 - 虾米音乐 (2021_1_29 下午8_58_57).html
|   |   └── 相关艺人 - 蒸汽波 Vaporwave 曲风流派 - 虾米音乐 (2021_1_29 下午8_59_09).html

 

处理过程

1、先批量把文件名给换了,使用工具 Everything 把主页里面的一级页面名换成 index 、相关曲目、相关专辑、相关艺人、三个子页面统一换成 曲目.html 专辑.html 艺人.html

  • Everything 打开整个目录,然后排序一下,选中曲目的页面右键重命名

 

2、文件名替换完成后就比较统一了,就成了下面的这样,这时候再把 index.html 里面对应点击二级页面的A标签批量替换了,使用工具 Visual Studio Code

├── 电子
|   ├── 女巫浩室 Witch House
|   |   └── index.html
|   |   └── 曲目.html
|   |   └── 专辑.html
|   |   └── 艺人.html
  • Visual Studio Code 打开整个目录,然后点击搜索,选用 正则表达式匹配 然后填入要替换的内容就行了

 

正则表达式查找A标签并替换

<a href="[^"]*" # 查找匹配
               
<a href="#"     # 替换内容

正则表达式语法

a|b         匹配 a 或 b
gr(a|e)y         匹配 gray 或 grey
.         匹配任一字符
[abc]         匹配任一字符: a 或 b 或 c
[^abc]         匹配任一字符, 但不包括 a, b, c
[a-z]         匹配从 a 到 z 之间的任一字符
[a-zA-Z]         匹配从 a 到 z, 及从 A 到 Z 之间的任一字符
^         匹配文件名的头部
$         匹配文件名的尾部
( )         匹配标记的子表达式
\n         匹配第 nth 个标记的子表达式, nth 代表 1 到 9
\b         匹配字词边界
*         匹配前一项内容 0 或多次
?         匹配前一项内容 0 或 1 次
+         匹配前一项内容 1 或多次
*?         匹配前一项内容 0 或多次 (懒人模式)
+?         匹配前一项内容 1 或多次 (懒人模式)
{x}         匹配前一项内容 x 次
{x,}         匹配前一项内容 x 或多次
{x,y}         匹配前一项内容次数介于 x 和 y 之间
\         特殊转义字符
最后修改:2024 年 02 月 27 日
钥匙你想请我喝酱香拿铁的话!