正则
1、在js种正则表达式的常见写法
正则表达式符号perl方式(常用写法):let re = /a/i;、let re = /a/;
正则表达式对象js方式:let reg = new RegExp('a','i');、let reg = new RegExp(/a/,'i');、let reg = new RegExp('a');
2、在perl方式下正则表达式的详解
例如:let re = /a/i;
//是定界符,边界内的就是正则表达式。
a是模式pattern,描述了表达式模型。
i是修饰符modifiers,描述了检索是否是全局,区分大小写等。
3、修饰符详解
i - 修饰符是用来执行不区分大小写的匹配。
g - 修饰符是用于执行全文的搜索(而不是在找到第一个就停止查找,而是找到所有的匹配)。
4、量词
贪婪量词,上面提到的所有简单量词。就像成语中说的巴蛇吞象那样,一口吞下整个字符串,发现吞不下(匹配不了),再从后面一点点吐出来(去掉最后一个字符,再看这时这个整个字符串是否匹配,不断这样重复直到长度为零),未经修饰的量词就是贪心量词。
隋性量词,在简单量词后加问号。由于太懒了,先吃了前面第一个字符,如果不饱再捏起多添加一个(发现不匹配,就读下第二个,与最初的组成一个有两个字符串的字符串再尝试匹配,如果再不匹配,再吃一个组成拥有三个字符的字符串……)。其工作方式与贪婪量词相反。
简单量词(贪婪量词):
{n}:一个字符或字符集合必须在原始文本里连续重复出现n次才算是一个匹配。
{n, m}:一个字符或字符集合必须在原始文本里最少重复出现n次、最多出现m次才算是一个匹配。
{n, }:一个字符或字符集合必须在原始文本里必须重复出现n次或更多次才算是一个匹配。
预定义的量词元字符:
+ = {1, }
* = {0, }
? = {0, 1}
隋性量词
5?? :不匹配任何内容。懒惰的基本特性就是匹配尽可能少的字符——它就是个“懒虫”。
5+? :只匹配一个5。
5、字符组
字符组有时也被称为方括号表达式。字符组有助于匹配特定字符或者特定的字符序列。
\d = [0-9] : 匹配的是从0到9的数字。
[a-z] : 匹配的是从a到z的小写字母。
\w = [A-Za-z0-9_] : 匹配的是任意一个字母(无论大小写)或数字或下划线。
字符组取反:对字符组取反会匹配与字符组内容不匹配的字符。
\D = [^0-9] : 不匹配从0到9的数字。
\W = [A-Za-z0-9_] : 不匹配任意一个字母(无论大小写)或数字或下划线。
6、选择和分组操作
选择操作可在多个可选模式中匹配一个。
/the|The|THE/: 匹配'the', 'The', 'THE'
分组操作:正则表达式中的子模式,就是指分组中的一个或多个分组。
/( )+/
7、边界
^脱字符 :匹配行或字符串的起始
$美元符 :匹配行或字符串的结尾位置
/^the.*a$/g:匹配以the开头以a结尾的字符串
8、常用元字符以及转义字符
\n : 匹配一个换行符
\r : 匹配一个回车符
\s : 匹配任何空白字符,包括空格、制表符、换页符等等。
\S : 匹配任何非空白字符。
. : 点号可以匹配除行结束符之外的所有字符,个别情况除外。
转义字符: 任何一个元字符都可以额通过给它加上一个反斜杠字符(\)作为前缀的办法来转义。

浙公网安备 33010602011771号