【D1N910】正则表达式30分钟入门教程 (一)-学习笔记 && 实践
目录
正常操作,正常分析,大家好,我是D1n910
本文学习自 正则表达式30分钟入门教程
http://deerchao.net/tutorials/regex/regex.htm
一、正则表达式介绍
有类人,听到公鸡的叫声“喔喔喔”,会忍不住拔剑练武,这是祖逖的闻鸡起舞;
有类人,听到安全词,比如“蛋糕”,就会停下自己的行为;
这是按照一定的规则实现的。
电脑,手机,是由人制作而成的;上面的软件也如此;上面的你能看到的数据也如此。
在人的设定下,它们也有自己的规则,根据这些规则,它们能够作出对应的行为。
举个栗子????,你对一串数据说“请你匹配bilibili这个单词,如果匹配得到,请你不要再出现。”那串数据的名字叫‘ccccccbilibiliccccc’,它看了看自己:“哦!我是‘ccccccbilibiliccccc’,包含了‘bilibili’,那么可爱的人,再见了????”它就此消失。
刚刚你讲的话,就是一种规则,不过实际运用起来,要更简单一点,更简短一点,这种规则像公式,只要字符串负责你说的公式,类似 x + 1 = 2,当x = 1 的时候,复合这个公式,就可以做出对应的行为。
这个公式的名称就叫
“正则表达式”
B站是懂web技术的同学 @碧诗 制作的产品,在B站的视频弹幕上,可以通过使用“正则表达式”的功能进行弹幕的过滤——即按照你的特定规则进行屏蔽弹幕。
你也可以认为是一种更高级别的弹幕屏蔽术。
按照我的安排设计,每一步都可以进行实践应用,你会发现正则表达式不难理解入门
二、bilibili正则表达式入口
想要使用正则表达式屏蔽弹幕,在哔哩哔哩上,按照电脑和手机,分为电脑端入口和手机端入口
A 电脑端入口
1、通过 视频页右上角-三点icon菜单栏-屏蔽设定
2、通过输入框输入正则表达式,可以在“屏蔽正则”下看到你写好的正则表达式内容
B 手机端入口
1、点一下屏幕-选择弹幕设置
2、选择【开启屏蔽词】后,点击屏蔽管理
3、同“电脑端”,输入正确的“正则表达式”后点击“添加”即可。
三、正则表达式入门
学习的最好方式是从例子开始,理解了以后再把例子修改,实验,就能够学到了。下面的例子都有很详细的说明。
比如你现在在看《我的超级英雄学院》第一季第八话12:31
你看到很多SHIT,你不太喜欢,你想要屏蔽掉“shit”,那么你只要在输入框输入“/shit/”,这是最简单的正则表达式了,意思是匹配这样的弹幕,它里面包含四个连续字符,“shit”,弹幕匹配成功,就屏蔽这条弹幕。
这样就会发现原来的shit都被屏蔽了,不过你会发现还留着“s.h.i.t”,因为“s.h.i.t”不完全包含“shit”,换成“/s/”,意思是匹配这样的弹幕,它里面包含一个字符,“s”,弹幕匹配成功,就屏蔽这条弹幕。
我们发现“s.h.i.t”的弹幕成功屏蔽
如果想精准屏蔽怎么办?比如我们想单纯屏蔽“act3”这条弹幕,输入“/act3/”会误伤“act3!”这条弹幕。如果想要精准屏蔽act3这条弹幕的话,我们应该使用“/^act$/”,意思是匹配这样的弹幕,从【弹幕开始位置】,匹配三个字符,按顺序a、c、t,到【弹幕结束位置】,弹幕匹配成功,就屏蔽这条弹幕。
“^”、“$”是正则表达式中规定的特殊代码,也叫【元字符】,特殊之处在于他们能够代表一些特殊意义。“^”匹配字符串的开始,“$”匹配字符串的结束。(先不忙着记忆,因为下面会提供一张常用的元字符表。)
四、元字符表
假如我们要匹配有两个字符串之间的弹幕怎么办?比如我们要匹配一个字符串,开头是“你好”,结尾是“先生”,比如“你好,碧诗先生”,那我们就要使用“/^你好.*先生$/”。这匹配这样的弹幕,从【弹幕开始位置】,匹配两个字符,按顺序你、好,然后匹配【任意字符】【零次或者更多次】,然后匹配两个字符,按顺序先、生,到【弹幕结束位置】,弹幕匹配成功,就屏蔽这条弹幕。
那么“.”、“*”是代表什么意思呢?下面,请看常用的元字符表。
上面的内容,我们已经有了应用。这里再对“\d”的使用情况进行举例,比如我们看视频的时候,有一些弹幕会带有时间,说自己是什么时候来的,这类弹幕有时候是不受我们喜欢的,干扰到了我们观看弹幕。比如这个视频截图上的部分弹幕。
时间弹幕里面一般包含数字,我们只要屏蔽掉有数字的弹幕即可。通过查询表1,常用的元字符表,使用正则表达式“/\d/”,我们可以实现我们的目的。
五、字符转义
有一个点是,如果我们要屏蔽的弹幕里面包含了元字符怎么办?比如我要屏蔽的弹幕里就是包含了$,那么只需要在“$”前面加“\”即可,即“/\$/”。“\”也是元字符,它的作用是将它身后的元字符转换成无意义的字符或者是将它身后无意义的字符转换成元字符。假如我们要匹配“\”这个字符,怎么办呢?在前面加一个“\”即可,即“/\\/”。
经过上面的学习,相信你已经对正则表达式,高级弹幕屏蔽术有了初步的认识,你做得非常好,给你点赞。现在就可以尝试使用这种“魔法”!
下期我们会进行稍稍深入的介绍有关【重复】、【集合】、【分枝条件】......这会给你带来非常多的帮助。
正则表达式——学习进度(5/18)