正在学习Qt,从油管的playlist?list=PLPeSWEML8bFV8lzTJ_oORLUlfugzuQ5yF下载了17个视频,还有配套的文字资料(http://tutorialcoding.com/qt/index.html),非常适合入门!

需要将视频目录内容整理一下。

视频列表文件内容

观察每条内容的格式

1


6:31
Qt Tutorial, Introduction
Progenitor Softworks
2


10:34
Qt Tutorial: Unit 1, Hello World!
Progenitor Softworks
3


6:15
Qt Tutorial: Unit 2, PushMe!
Progenitor Softworks

序号

空行

视频时长

视频文件名

出品人

希望最终获取的内容格式是:

序号    视频文件名   视频时长


使用NotePad++ 正则:

油管视频目录正则整理_第1张图片

解释:

查找目标:^([\d]{1,2})(\r\n\r\n)(\d{1,2}:\d{1,2})(\r\n)(.*)(\r\n)(.*)$

^代表行开始,后接7组内容(1)(2)(3)(4)(5)(6)(7),每组要查找的内容都以(、)包含。

其中(2)、(4)、(6)组内容为(\r\n\r\n)、(\r\n),意为查找回车(\r)换行(\n)。

(1)组内容为([\d]{1,2}),意为匹配最多两位数字(.*),且(1)组后接两个回车换行符号(2)。

(3)组内容为(\d{1,2}:\d{1,2}),意为匹配mm:ss的时间格式,(3)组后接1个回车换行符(4)。

(5)组内容为(.*),意为任意长度的字符,匹配视频文件名(包含空格),(5)组后接1个回车换行符(6)。

(7)组内容为(.*),意为任意长度的字符,匹配Progenitor Softworks,(7)组后接$,代表行结束,实际就是行尾的回车换行符。

替换为:$1\t$5\t$3

保留匹配内容的3组内容:(1)序号、(5)视频文件名、(3)视频时长,并按指定顺序显示,而且内容之间使用tab(\t)分隔。


前后结果如下(左侧是原始内容,右侧是处理过后内容):

油管视频目录正则整理_第2张图片