【D1n910】獲得高級(jí)彈幕過(guò)濾術(shù)|正則表達(dá)式入門(mén)教程(一)

正常操作,正常分析,大家好,我是D1n910
本文學(xué)習(xí)自 正則表達(dá)式30分鐘入門(mén)教程
http://deerchao.net/tutorials/regex/regex.htm
一、正則表達(dá)式介紹
有類人,聽(tīng)到公雞的叫聲“喔喔喔”,會(huì)忍不住拔劍練武,這是祖逖的聞雞起舞;
有類人,聽(tīng)到安全詞,比如“蛋糕”,就會(huì)停下自己的行為;
這是按照一定的規(guī)則實(shí)現(xiàn)的。
電腦,手機(jī),是由人制作而成的;上面的軟件也如此;上面的你能看到的數(shù)據(jù)也如此。
在人的設(shè)定下,它們也有自己的規(guī)則,根據(jù)這些規(guī)則,它們能夠作出對(duì)應(yīng)的行為。
舉個(gè)栗子??,你對(duì)一串?dāng)?shù)據(jù)說(shuō)“請(qǐng)你匹配bilibili這個(gè)單詞,如果匹配得到,請(qǐng)你不要再出現(xiàn)?!蹦谴?dāng)?shù)據(jù)的名字叫‘ccccccbilibiliccccc’,它看了看自己:“哦!我是‘ccccccbilibiliccccc’,包含了‘bilibili’,那么可愛(ài)的人,再見(jiàn)了*”它就此消失。
剛剛你講的話,就是一種規(guī)則,不過(guò)實(shí)際運(yùn)用起來(lái),要更簡(jiǎn)單一點(diǎn),更簡(jiǎn)短一點(diǎn),這種規(guī)則像公式,只要字符串負(fù)責(zé)你說(shuō)的公式,類似 x + 1 = 2,當(dāng)x = 1 的時(shí)候,復(fù)合這個(gè)公式,就可以做出對(duì)應(yīng)的行為。
這個(gè)公式的名稱就叫
“正則表達(dá)式”
B站是懂web技術(shù)的同學(xué) @碧詩(shī) 制作的產(chǎn)品,在B站的視頻彈幕上,可以通過(guò)使用“正則表達(dá)式”的功能進(jìn)行彈幕的過(guò)濾——即按照你的特定規(guī)則進(jìn)行屏蔽彈幕。
你也可以認(rèn)為是一種更高級(jí)別的彈幕屏蔽術(shù)。
按照我的安排設(shè)計(jì),每一步都可以進(jìn)行實(shí)踐應(yīng)用,你會(huì)發(fā)現(xiàn)正則表達(dá)式不難理解入門(mén)
二、入口
想要使用正則表達(dá)式屏蔽彈幕,在嗶哩嗶哩上,按照電腦和手機(jī),分為電腦端入口和手機(jī)端入口
A 電腦端入口
1、通過(guò) 視頻頁(yè)右上角-三點(diǎn)icon菜單欄-屏蔽設(shè)定

2、通過(guò)輸入框輸入正則表達(dá)式,可以在“屏蔽正則”下看到你寫(xiě)好的正則表達(dá)式內(nèi)容

B?手機(jī)端入口
1、點(diǎn)一下屏幕-選擇彈幕設(shè)置

2、選擇【開(kāi)啟屏蔽詞】后,點(diǎn)擊屏蔽管理

3、同“電腦端”,輸入正確的“正則表達(dá)式”后點(diǎn)擊“添加”即可。

三、入門(mén)
學(xué)習(xí)的最好方式是從例子開(kāi)始,理解了以后再把例子修改,實(shí)驗(yàn),就能夠?qū)W到了。下面的例子都有很詳細(xì)的說(shuō)明。
比如你現(xiàn)在在看《我的超級(jí)英雄學(xué)院》第一季第八話12:31


你看到很多SHIT,你不太喜歡,你想要屏蔽掉“shit”,那么你只要在輸入框輸入“/shit/”,這是最簡(jiǎn)單的正則表達(dá)式了,意思是匹配這樣的彈幕,它里面包含四個(gè)連續(xù)字符,“shit”,彈幕匹配成功,就屏蔽這條彈幕。

這樣就會(huì)發(fā)現(xiàn)原來(lái)的shit都被屏蔽了,不過(guò)你會(huì)發(fā)現(xiàn)還留著“s.h.i.t”,因?yàn)椤皊.h.i.t”不完全包含“shit”,換成“/s/”,意思是匹配這樣的彈幕,它里面包含一個(gè)字符,“s”,彈幕匹配成功,就屏蔽這條彈幕。

如果想精準(zhǔn)屏蔽怎么辦?比如我們想單純屏蔽“act3”這條彈幕,輸入“/act3/”會(huì)誤傷“act3!”這條彈幕。如果想要精準(zhǔn)屏蔽act3這條彈幕的話,我們應(yīng)該使用“/^act$/”,意思是匹配這樣的彈幕,從【彈幕開(kāi)始位置】,匹配三個(gè)字符,按順序a、c、t,到【彈幕結(jié)束位置】,彈幕匹配成功,就屏蔽這條彈幕。

“^”、“$”是正則表達(dá)式中規(guī)定的特殊代碼,也叫【元字符】,特殊之處在于他們能夠代表一些特殊意義?!?span id="s0sssss00s" class="color-pink-03">^”匹配字符串的開(kāi)始,“$”匹配字符串的結(jié)束。(先不忙著記憶,因?yàn)橄旅鏁?huì)提供一張常用的元字符表。)
四、元字符表
假如我們要匹配有兩個(gè)字符串之間的彈幕怎么辦?比如我們要匹配一個(gè)字符串,開(kāi)頭是“你好”,結(jié)尾是“先生”,比如“你好,碧詩(shī)先生”,那我們就要使用“/^你好.*先生$/”。這匹配這樣的彈幕,從【彈幕開(kāi)始位置】,匹配兩個(gè)字符,按順序你、好,然后匹配【任意字符】【零次或者更多次】,然后匹配兩個(gè)字符,按順序先、生,到【彈幕結(jié)束位置】,彈幕匹配成功,就屏蔽這條彈幕。
那么“.”、“*”是代表什么意思呢?下面,請(qǐng)看常用的元字符表。

上面的內(nèi)容,我們已經(jīng)有了應(yīng)用。這里再對(duì)“\d”的使用情況進(jìn)行舉例,比如我們看視頻的時(shí)候,有一些彈幕會(huì)帶有時(shí)間,說(shuō)自己是什么時(shí)候來(lái)的,這類彈幕有時(shí)候是不受我們喜歡的,干擾到了我們觀看彈幕。比如這個(gè)視頻截圖上的部分彈幕。

時(shí)間彈幕里面一般包含數(shù)字,我們只要屏蔽掉有數(shù)字的彈幕即可。通過(guò)查詢表1,常用的元字符表,使用正則表達(dá)式“/\d/”,我們可以實(shí)現(xiàn)我們的目的。

五、字符轉(zhuǎn)義
有一個(gè)點(diǎn)是,如果我們要屏蔽的彈幕里面包含了元字符怎么辦?比如我要屏蔽的彈幕里就是包含了$,那么只需要在“$”前面加“\”即可,即“/\$/”?!癨”也是元字符,它的作用是將它身后的元字符轉(zhuǎn)換成無(wú)意義的字符或者是將它身后無(wú)意義的字符轉(zhuǎn)換成元字符。假如我們要匹配“\”這個(gè)字符,怎么辦呢?在前面加一個(gè)“\”即可,即“/\\/”。

經(jīng)過(guò)上面的學(xué)習(xí),相信你已經(jīng)對(duì)正則表達(dá)式,高級(jí)彈幕屏蔽術(shù)有了初步的認(rèn)識(shí),你做得非常好,給你點(diǎn)贊?,F(xiàn)在就可以嘗試使用這種“魔法”!

下期我們會(huì)進(jìn)行稍稍深入的介紹有關(guān)【重復(fù)】、【集合】、【分枝條件】......這會(huì)給你帶來(lái)非常多的幫助。
正則表達(dá)式——學(xué)習(xí)進(jìn)度(5/18)