初识正则表达式二 初识正则表达式二

一、预定义模式2861077989

预定义模式指的是某些常见模式的简写方式,简单说明如下:

\d: 匹配0-9的任一数字,相当于[0-9]

\D:匹配所有的0-9以外的字符,相当于[^0-9]

\w:匹配任意的字母、数字和下划线,相当于[A-Za-z0-9]

\W:除所有字母、数字和下划线

\s:匹配空格(包括制表符、空格符、断行符等)

\S:匹配非空格的字符,相当于[^\t\r\n\v\f]

\b:匹配词的边界

\B:匹配非词的边界,即在词的内部。

通常,正则表达式遇到换行符(\n)就会停止匹配,这时使用/s字符类,就能包括换行符。

扫描二维码关注公众号,回复: 8223091 查看本文章

也可使用非捕获组

二、重复类

模式的精确匹配次数,使用大括号({})表示。n表示恰好重复n次,{n,}表示至少重复n次,{n,m}表示重复不少于n次,不多于m次。

/lo{2}k/.test('look') //true

/lo{2,5}k/.test(looook) //true

上面代码中,第一个模式指定o连续出现两次,第二个模式指定o连续出现2~5次

三、量词字符

量词用来设定某个模式出现的次数,具体说明如下:

?:表示某个模式出现0次或1次,等同于{0,1}

*:表示某个模式出现0次或多次,等同于{0,}

+:表示某个模式出现1次或多次,等同于{1,}

三:贪婪模式

var s='aaa';

s.match(/a+/)     //["aaa"]

之前二部分介绍的3个量词字符,在默认情况下都是最大可能匹配,即匹配到下一个字符不满足匹配规则为止,这被称为贪婪模式。

如果想将贪婪模式改为非贪婪模式,可以在量词符后面加一个问号

var s=‘aaa’;

s.match(/a+?/)         //["a"]

除了非贪婪模式的加号,还有非贪婪模式的星号

*?:表示某个模式出现0次或多次,匹配时采用非贪婪模式。

+?:表示某个模式出现1次或多次

四、修饰字符

修饰字符(Modifier)表示模式的附加规则,放在正则匹配模式的最尾部。修饰符可以单个使用,也可以多个一起使用。例如:

//单个修饰符

var regex=/test/i;

//多个修饰符

var regex=/test/ig;

一、预定义模式2861077989

预定义模式指的是某些常见模式的简写方式,简单说明如下:

\d: 匹配0-9的任一数字,相当于[0-9]

\D:匹配所有的0-9以外的字符,相当于[^0-9]

\w:匹配任意的字母、数字和下划线,相当于[A-Za-z0-9]

\W:除所有字母、数字和下划线

\s:匹配空格(包括制表符、空格符、断行符等)

\S:匹配非空格的字符,相当于[^\t\r\n\v\f]

\b:匹配词的边界

\B:匹配非词的边界,即在词的内部。

通常,正则表达式遇到换行符(\n)就会停止匹配,这时使用/s字符类,就能包括换行符。

也可使用非捕获组

二、重复类

模式的精确匹配次数,使用大括号({})表示。n表示恰好重复n次,{n,}表示至少重复n次,{n,m}表示重复不少于n次,不多于m次。

/lo{2}k/.test('look') //true

/lo{2,5}k/.test(looook) //true

上面代码中,第一个模式指定o连续出现两次,第二个模式指定o连续出现2~5次

三、量词字符

量词用来设定某个模式出现的次数,具体说明如下:

?:表示某个模式出现0次或1次,等同于{0,1}

*:表示某个模式出现0次或多次,等同于{0,}

+:表示某个模式出现1次或多次,等同于{1,}

三:贪婪模式

var s='aaa';

s.match(/a+/)     //["aaa"]

之前二部分介绍的3个量词字符,在默认情况下都是最大可能匹配,即匹配到下一个字符不满足匹配规则为止,这被称为贪婪模式。

如果想将贪婪模式改为非贪婪模式,可以在量词符后面加一个问号

var s=‘aaa’;

s.match(/a+?/)         //["a"]

除了非贪婪模式的加号,还有非贪婪模式的星号

*?:表示某个模式出现0次或多次,匹配时采用非贪婪模式。

+?:表示某个模式出现1次或多次

四、修饰字符

修饰字符(Modifier)表示模式的附加规则,放在正则匹配模式的最尾部。修饰符可以单个使用,也可以多个一起使用。例如:

//单个修饰符

var regex=/test/i;

//多个修饰符

var regex=/test/ig;

猜你喜欢

转载自www.cnblogs.com/whgaw156/p/12057067.html
今日推荐