Skip to content

正则表达式

November 4, 2022 | 04:55 PM

正则表达式

介绍

正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript 中,正则表达式也是对象。这些模式被用于 RegExpexectest 方法,以及 StringmatchmatchAllreplacesearchsplit 方法。

而正则表达式的用途也十分广泛,比如哔哩哔哩的弹幕屏蔽,输入密码时的密码复杂度判断,都是我们日常生活中经常遇见的,可谓是用处极大

正则表达式的在线测试网站https://regex101.com/

语法

限定符

? 代表前面的字母需要出现0次或者1次,也就是前面的字符可有可无

image.png

*

* 代表前面的字母可以没有,也可以出现多次

image.png

+

+ 会匹配出现一次及其以上的字母

image.png

如果这时候我们想要更精确的匹配,比如要指定前面字母出现的次数,我们可以使用{}。例如在{}中填写上6,则意味着匹配前面的字母出现六次的字符image.png

如果我们希望字符出现的次数在2-6之间,我们可以使用{2,6},如果我们希望出现的字符出现在两次以上,则省略后面的数字即可{2,},但注意别忘了中间的逗号

匹配多个字符的重复

() 这时候我们可以选择将想要匹配的多个字符用括号括起来,比如我们想要匹配多次的ab,则可以写成(ab)+,这样就会匹配ab这两个字符的重复情况了

或运算

当我们想要匹配字符 a cat或者a dog,就可以将正则表达式写成a (cat|dog),这时候会先去匹配a空格,然后再去匹配cat和dog 这时候中间的竖线是必不可少的,要注意要用括号包住,不然就是比配的a cat和dogimage.png

字符类

当我们想要找寻由abc三个字母构成的单词,我们可以写成[abc]+,方括号里面的字符要求里面的内容只能取自于这三个字母

image.png

同时这里可以指定范围 使用-就可以指定范围,例如[a-z]+就是匹配a-z的所有小写字母组成的单词

如果要匹配除去它以外的所有字符,可以在前面加上一个^,比如[^0-9]+就是匹配除了数字以外的所有内容(包括换行符)

元字符

正则表达式的大多数元字符都是以\开头

贪婪和懒惰匹配

默认情况下,正则表达式的.是使用的贪婪匹配,尽可能的多去匹配,我们只需要在匹配的限定次数(比如+就是匹配一次及其以上)后面加上一个?即可,这时候将会从贪婪匹配切换到懒惰匹配

image.png

总结

image.png