如何高效屏蔽B站令人心烦的弹幕?——正则表达式实践

温馨提示:本文最后修改于 48 天前,部分内容可能已经过时。如文章内容或静态资源失效,请联系我进行更新,谢谢~

引子

五一假期这几天干啥呢?不知道干啥,就在家刷B站吧!于是。时间很自然的导向了B站。可打开B站,心情一定会好吗?当然不会,看着满屏的智障弹幕,心中一万匹CNM在策马奔腾。不多说了,直接看图。

2019-05-03.png
全B站我觉得最可惜的一个视频,之前神仙级别的高级弹幕让这些刷日期的SB刷没了,痛心。NM$L!⬆⬆⬆
2019-05-03 (2).png
FFF团员极度亢奋中⬆⬆⬆
2019-05-03 (1).png
HOP原来不是很多空耳君吗?让这些ZZ弹幕挤没了?⬆⬆⬆

解决方案

这么多脑残弹幕怎么屏蔽呢?一个个加入屏蔽词?当然可以,不过那样的话你要加入上前乃至上万个屏蔽词,效率极低,播放器肯定也会出现明显的卡顿。B站为我们提供了另外一个选项——正则表达式屏蔽。

啥是正则表达式?

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),又称正规表示式正规表示法正规表达式规则表达式常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。【引用自维基百科】

也就是说,正则表达式是一种能够快熟筛选字符串的一种方法,在很多编程语言中应用广泛。像B站,正则表达式就是在前端JavaScript中运行并起作用的(这种东西肯定不会放到后端做,尽管Go语言能实现,手动狗头)。

怎么编写正则表达式?

网络上有详尽的教程,我在此引述一些我使用到的:

正则表达式 – 教程 | 菜鸟教程

弹幕正则屏蔽的正确使用姿势 - 哔哩哔哩

GitHub上还有与此相关的开源项目,开箱即用:

jnxyp/Bilibili-Block-List: 基于正则表达式的Bilibili弹幕屏蔽规则

如何使用正则进行屏蔽?

很容易可以在B站PC端找到屏蔽设定模块,如图:

2019-05-03 (4).jpg
你可以将自己写的正则写在输入框内,注意前面后面都要加上斜杠/,点击右边添加即可。别忘记同步哈~

你也可以在编辑区右键点击,导出XML文件,这相当于一个备份文件,你可以把它分享给别人,让别人也可以方便的使用你的规则。

相同的,你也可以导入他人的规则。下面我分享一下我的规则。

分享我的弹幕屏蔽XML

这是我自己定制的正则屏蔽规则,目前可能有一些问题,比如不全面,容易误杀,今后我也会尽量加以维护,毕竟我也是开始学QAQ
<!-- B站弹幕屏蔽规则 By Xiaomage 2019.5.3 -->
<!-- 使用教程详见https://xmgspace.me -->
<!-- 制作时参考了其他的同类作品,不便收集,在此感谢原作者~阿里嘎多 -->

<filters>
<!-- 给卢老爷上香 -->
<item enabled="true">t=一卷</item>
<item enabled="false">r=上香(吐痰)?</item>
<!-- 给卢老爷上香 -->

<!-- 屏蔽脑残MC玩家 -->
<item enabled="true">t=mc好评</item>
<item enabled="true">t=MC了解一下</item>
<item enabled="true">t=我的世界了解一下</item>
<item enabled="true">t=mc</item>
<item enabled="true">t=Mc</item>
<item enabled="true">t=MC</item>
<item enabled="true">t=我的世界</item>
<!-- 屏蔽脑残MC玩家 -->

<!-- 屏蔽抽奖弹幕 -->
<item enabled="true">t=抽奖</item>
<item enabled="true">t=中奖</item>
<item enabled="true">t=抽</item>
<item enabled="true">t=奖</item>
<item enabled="true">t=中</item>
<item enabled="true">t=万一</item>
<item enabled="true">t=一万呢</item>
<!-- 屏蔽抽奖弹幕 -->

<!-- 屏蔽无意义刷屏弹幕 -->

<item enabled="true">t=⎛⎝≥⏝⏝≤⎠⎞</item>
<item enabled="true">t=顶端</item>
<item enabled="true">t=联发</item>
<item enabled="true">t=漂移</item>
<item enabled="true">r=(■|▂|▃|▄|▅|▆|█)*</item>
<item enabled="true">r=[什么怎啥].{0,5}会员|会员.{0,5}[什么怎啥啊]|会员.{0,8}世界</item>
<item enabled="true">r=会员色</item>
<!-- 屏蔽无意义刷屏弹幕 -->

<!-- 屏蔽暴露隐私弹幕 -->
<item enabled="true">r=[\u4e00-\u9fa5]*别撸了</item>
<item enabled="true">r=我知道你在[\u4e00-\u9fa5]*</item>
<item enabled="true">r=(好|hao|号)?(这|着)?(一)?口</item>
<item enabled="true">r=(助|保佑|保|助|给|佑|祝)(我)?</item>
<!-- 屏蔽暴露隐私弹幕 -->

<!-- 屏蔽Emoji -->
<!-- 我个人非常不喜欢在弹幕中看到Emoji,故屏蔽之 -->
因数据库问题无法正常显示,请下载最下面的XML文件查看
<!-- 屏蔽Emoji -->

<!-- 屏蔽刷日期时间 -->
<item enabled="true">r=[0-9]{2,4}[\-\-\.\-\/\\年][0-9]{1,2}[\-\-\.\-\/\\月][0-9]{1,2}</item>
<item enabled="true">r=20[0-9]{2}[\.\-\/\\年][0-9]{1,2}</item>
<item enabled="true">r=(20|19)[0-9]{2} ?(0?[1-9]|1[012]) ?(0?[1-9]|[12][0-9]|3[01])</item>
<item enabled="true">r=[0-9]{1,2}月[0-9]{1,2}</item>
<item enabled="true">r=(元旦|年|国庆|春|秋|圣诞).?快乐</item>
<!-- 屏蔽刷日期时间 -->

<!-- 刷前排 -->
<item enabled="true">r=^.{0,4}[关踹]上.*大门</item>
<item enabled="true">r=^[看瞧]{1,2}我刷[出到]了什么</item>
<item enabled="true">r=^[第前钱][①②③④⑤⑥⑦⑧⑨01234567890-9〇一二两俩三四五六七八九零壹贰叁肆伍陆柒捌玖⑴⑵⑶⑷⑸⑹⑺⑻⑼㈠㈡㈢㈣㈤㈥㈦㈧㈨]</item>
<item enabled="true">r=^[①②③④⑤⑥⑦⑧⑨01234567890-9〇一二两俩三四五六七八九零壹贰叁肆伍陆柒捌玖⑴⑵⑶⑷⑸⑹⑺⑻⑼㈠㈡㈢㈣㈤㈥㈦㈧㈨]*小时前</item>
<!-- 刷前排 -->
</filters>

你可以点击➡这里⬅下载这个xml文件~

~~End Of File~~

本文永久链接:https://blog.xmgspace.me/archives/regular-expression-on-bilibili.html

本文文章标题:如何高效屏蔽B站令人心烦的弹幕?——正则表达式实践

本站欢迎转载与引用~但您需要注明文章标题与链接,并表明转载/引用自Xiaomage's Blog。

授权协议:署名-非商业性使用-相同方式共享 4.0 国际(CC BY 4.0)

标签:正则表达式

还没有人评论哦,还不快抢沙发~

添加新评论

i_f01.pngi_f02.pngi_f03.pngi_f04.pngi_f05.pngi_f06.pngi_f07.pngi_f08.pngi_f09.pngi_f10.pngi_f11.pngi_f12.pngi_f13.pngi_f14.pngi_f15.pngi_f16.pngi_f17.pngi_f18.pngi_f19.pngi_f20.pngi_f21.pngi_f22.pngi_f23.pngi_f24.pngi_f25.pngi_f26.pngi_f27.pngi_f28.pngi_f29.pngi_f30.pngi_f31.pngi_f32.pngi_f33.png