概述
本文主要通过对正则表达式的语法进行一些简单的介绍,从而让没有接触过或者想学习正则表达式的同学有一个基础的了解,从而能够看懂和编写使用一般的正则表达式。
本文的主要内容为:
-
正则表达式的字符匹配
-
正则表达式的位置匹配
-
正则表达式的括号与捕获组
本文的主要受众是想要学习正则表达式又不知道从何入手的同学。如果你已经使用过正则表达式,可以快速浏览本文,强化自己的记忆即可。
字符匹配
匹配规则
在正则表达式中,分为精确匹配和模糊匹配两种。顾名思义,精确匹配就是匹配特定的字符或者位置;而非精确匹配就是带有一定的范围的匹配。具体示例如下:
const reg1 = /ab/; //精确匹配
const reg2 = /ab+/; //模糊匹配
不同的匹配适用于不同的场景,大家根据自己的需求进行选择即可。
字符组
在正则表达式中,我们经常会遇到从N个字符里面选取任意字符进行匹配的需求。这个时候,我们就需要一个字符组。具体示例如下:
const reg = /[abc]/; // 与上面示例完全相同,匹配a或b或者c
当匹配的字符多了以后,我们不可能全部都列到字符组里,因此我们可以使用范围表示法。具体示例如下:
const reg = /[a-c]/; // 匹配a或b或c
相同类的字符可以用范围,如1-9、A-Z或者a-z。在字符组中,-
是一个特殊字符,如果需要匹配-
,则需要使用\
进行转义。
当然,如果我们是不想匹配N个字符中的任意一个,我们可以用排除字符组的方式来进行匹配。具体示例如下:
const reg = /[^abc]/; // 不匹配a、b、c中任意一个
排除字符组中也可以使用范围。
量词
当我们需要匹配单个字符时,我们可以使用上面示例中的方法。但是,如果我们需要匹配单个字符若干次呢?最简单的方法就是将匹配的正则表达式写若干次,但是这样不仅费时费力,还不方便阅读。因此,正则表达式中使用了量词来表示重复匹配N次的情况。
量词含义如下:
-
{m, }
,至少出现m次。 -
{m, n}
,最少出现m次,最多出现n次&#