天天动画片 > 八卦谈 > 如何玩转正则弹幕屏蔽

如何玩转正则弹幕屏蔽

八卦谈 佚名 2022-10-19 14:05:20

什么是正则?

正则的全称为正则表达式,用于表达一个字符串匹配规则。正则表达式可以以一串字符的形式,帮助人们规定字符串需要匹配的格式,因此被广泛应用于程序服务设计。例如大部分网站检查邮箱和手机号都是使用正则表达式来实现的,而不需要编写专门的额外代码。

正则和屏蔽词有什么区别?它们工作的原理是什么?

屏蔽词会屏蔽所有带有指定字符串的弹幕。这也是大部分人使用的屏蔽弹幕方法,但缺点是可自定义性低;

正则会根据指定的正则表达式来筛选弹幕。如果有弹幕匹配了正则,那么这条弹幕就会被屏蔽。它的好处就是灵活、简便、高效。

简单的正则语法教程

如果你的正则表达式没有任何特殊字符,那么它就会表现得与屏蔽词的作用一样。但是我们可以通过下面这些特殊字符来进行更加智能的筛选:

星号(*):你可以在星号前面加上任意一个字符,用来匹配连续出现一次或多次的这个字符。

例如,/6*/会屏蔽6,66,666666等弹幕;/2333*/会屏蔽233,23333,23333333等。

加号(+):它的作用和星号类似。两者的区别在于,加号匹配的字符必须要至少出现一次,而星号匹配的字符可以不用出现

例如,/MineCom+ander/会匹配MineCommander,MineComander等,但不会匹配MineCoander,因为它在指定的位置不含有m。相对的,/MineCom*ander/则匹配MineCoander。

问号(?):由它匹配的字符最多只能出现1次,或是不出现。

例如,/MineCommander?/会匹配MineCommander和MineCommande。

方括号([]):将一串字符用方括号括起来并搭配上面的匹配符使用,可以让它们一次性支持多个字符。

例如,/1[23]?456/会匹配12456和13456,但不会匹配123456。

同时,在方括号内还可以支持自动筛选一些特定字符:

[0-9]:阿拉伯数字。

[a-z]:小写字母。

[A-Z]:大写字母。

这些特定筛选可以叠加使用,例如[a-zA-Z]会筛选所有英文字母。

圆括号():作用类似于方括号,但两者有所区别:一是圆括号不支持上面的特定筛选,二是方括号会挨个筛选其中的每一个字符,并且只留出单个字符的位置;圆括号则是将其中的字符串视作一个整体。这也是为什么/12[34]?56/不能匹配123456,因为字符3占去了[34]?的位置,而剩下的456无法匹配表达式后面的56。相对的,/12(34)?56/则可以匹配123456。

竖线(|):用于在圆括号内一次性支持多条字符串。例如,/12(34|43)?56/会匹配1256,123456和124356。

花括号({}):用在一个字符/中括号/圆括号的后面,用于指定此表达可以出现的数量。

例如,/6{2,4}/会屏蔽66,666,6666,而不会屏蔽6;/6{,4}/会屏蔽所有出现次数低于或等于4次的6;/6{3,}/会屏蔽所有出现次数大于或等于3次的6;/6{4}/会屏蔽6666。

插字符(^):放在正则最前面,用于锁死表达式只会从弹幕的最前端开始匹配。

例如,/6{4}/会屏蔽6666,6666abcd,23336666等;但/^6{4}/只会屏蔽6666,6666abcd,6666666666等。

美元符($):放在正则最后面,用于锁死表达式必须匹配到弹幕的最后端。可以和插字符一起使用,使得正则必须匹配弹幕中的所有内容而不能剩余。

例如,/6{4}$/会匹配23336666,abcd6666,而不会匹配233366;/^6{4}$/只能屏蔽6666这一条弹幕,而不能屏蔽666666666,66662333等。

感觉摸不着头脑?

您可以前往菜鸟教程网站系统学习正则表达式:https://www.runoob.com/regexp/regexp-tutorial.html

还是不想学?

现成的都给你备好了!

屏蔽前示例(使用视频:BV1qM4y1N7n9)

屏蔽前示例

1.屏蔽发布时间

/^[0-9一二两三四五六七八九十百千万亿]+个?(分钟|小时|分|min){1}/

效果预览

2.免误伤屏蔽“刚刚”“热乎”“好耶”

/^(刚刚|热乎|好耶)(!|!)*$/

效果预览

3.屏蔽“1播放xx赞”“1播放xx弹幕”等

/(1|一)播放[0-9]+[^\n\r]{1,2}/,/播放(1|一)[^\n\r]{1,2}[0-9]+/

效果预览

4.屏蔽所有单个字符重复3遍以上的弹幕(不会屏蔽666,ohhhh等特殊氛围弹幕)

/^[^\n\r6]{3,}$/


本文标题:如何玩转正则弹幕屏蔽 - 八卦谈
本文地址:www.ttdhp.com/article/4586.html

天天动画片声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
扫码关注我们