起因
最近把虾米的曲风分派的页面全部扒拉下来了,每个一级页面里有三个子页面,子页面是从这个一级页面的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 之间
\ 特殊转义字符
此处评论已关闭