使用Python正則表達(dá)式提取字幕
回復(fù)“資源”即可獲贈(zèng)Python學(xué)習(xí)資料
大家好,我是皮皮。
一、前言
前幾天在Python鉑金交流群粉絲【有點(diǎn)意思】問(wèn)了一道正則表達(dá)式處理的問(wèn)題,如下圖所示。

原始數(shù)據(jù),如下所示:
他自己想要的效果,如下圖:

二、實(shí)現(xiàn)過(guò)程
這里【月神】其實(shí)在上圖中已經(jīng)給了一個(gè)思路了,后來(lái)【瑜亮老師】也給了一個(gè)思路,如下圖所示:

后來(lái)粉絲自己也在其他群得到了一個(gè)解答,如下圖所示:

代碼,如下所示:
序號(hào)列表 = [x for x in 字幕文件 if not re.search('[^0-9\n]',x)]
序號(hào)列表 = [x for x in 序號(hào)列表 if x!='\n']
后來(lái)【瑜亮老師】提出一個(gè)疑問(wèn),明明是要字幕中的文字,為啥提出來(lái)的需求是取數(shù)字?粉絲自己也說(shuō)了自己的理由。

這里給出幾行示例數(shù)據(jù),如下所示:
1
00:00:00,256 --> 00:00:01,024
呵呵呵。
2
00:00:02,048 --> 00:00:02,560
哎呀,我這。
3
00:00:02,816 --> 00:00:03,584
得遠(yuǎn)一點(diǎn)。
4
00:00:06,400 --> 00:00:09,216
你往里再坐一點(diǎn)。
??
5
00:00:09,984 --> 00:00:10,496
好。
6
00:00:12,288 --> 00:00:13,056
呵呵呵。
7
00:00:13,312 --> 00:00:15,104
好。
后來(lái)【瑜亮老師】給了一份代碼,如下所示:
import re
data="""1
00:00:00,256 --> 00:00:01,024
呵呵呵。
2
00:00:02,048 --> 00:00:02,560
哎呀,我這。
3
00:00:02,816 --> 00:00:03,584
得遠(yuǎn)一點(diǎn)。
4
00:00:06,400 --> 00:00:09,216
你往里再坐一點(diǎn)。
??
5
00:00:09,984 --> 00:00:10,496
好。
6
00:00:12,288 --> 00:00:13,056
呵呵呵。
7
00:00:13,312 --> 00:00:15,104
好。"""
res=re.findall(",\d{3}\n(.*?)\n\n", data, re.S)
print(res)
運(yùn)行之后,結(jié)果如下所示:

完美地解決了粉絲的問(wèn)題。

三、總結(jié)
大家好,我是皮皮。這篇文章主要盤點(diǎn)了一道正則表達(dá)式處理數(shù)據(jù)的問(wèn)題,文中針對(duì)該問(wèn)題給出了具體的解析和代碼實(shí)現(xiàn),幫助粉絲順利解決了問(wèn)題。
最后感謝粉絲【有點(diǎn)意思】提問(wèn),感謝【月神】、【瑜亮老師】等人給出的思路和代碼解析,感謝群友們一起參與學(xué)習(xí)交流。
小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過(guò)程中,有遇到任何問(wèn)題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
------------------- End -------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
