第一章 正则表达式字符匹配攻略

正则表达式是匹配模式,要么匹配字符,要么匹配位置。

1.1 两种模糊匹配

1.1.1 横向模糊匹配

横向模糊指的是,一个正则可匹配的字符串的长度不是固定的,可以是多种情况的。

{m,n},表示连续出现最少 m 次,最多 n 次

var regex = /ab{2,5}c/g;   

var string = "abc abbc abbbc abbbbc abbbbbc abbbbbbc";   

console.log( string.match(regex) );   
// => ["abbc", "abbbc", "abbbbc", "abbbbbc"] 
 

其中 g 是正则的一个修饰符。表示全局匹配,即,在目 NOTE 标字符串中按顺序找到满足匹配模式的所有子串,强调的是“所有”,而不只是“第一个” 。g 是单词 global 的首字母

1.1.2 纵向模糊匹配

纵向模糊指的是,一个正则匹配的字符串,具体到某一位字符时,它可以不是某个确定的字符,可以有多种 可能。

[abc],表示该字符是可以字符 "a"、"b"、"c" 中的任何一个

var regex = /a[123]b/g;   

var string = "a0b a1b a2b a3b a4b";   

console.log( string.match(regex) );   

// => ["a1b", "a2b", "a3b"] 
 

1.2 字符组

1.2.1 范围表示法

[123456abcdefGHIJKLM],可以写成 [1-6a-fG-M]。用连字符 - 来省略和简写

1.2.2. 排除字符组

[^abc],表示是一个除 "a"、"b"、"c"之外的任意一个字 符。字符组的第一位放 ^(脱字符),表示求反的概念

1.2.3. 常见的简写形式

字符组具体含义
\d表示 [0-9]。表示是一位数字。 记忆方式:其英文是 digit(数字)。
\D表示 [^0-9 ]。表示除数字外的任意字符。
\w表示 0-9a-zA-Z_。表示数字、大小写字母和下划线。 记忆方式:w 是 word 的简写,也称单词字符。
\W表示 ^0-9a-zA-Z_。非单词字符。
\s表示 \t\v\n\r\f。表示空白符,包括空格、水平制表符、垂直制表符、换行符、回车符、换页 符。 记忆方式:s 是 space 的首字母,空白符的单词是 white space。
\S表示 ^ \t\v\n\r\f。 非空白符。
.表示 ^\n\r\u2028\u2029。通配符,表示几乎任意字符。换行符、回车符、行分隔符和段分隔符 除外。 记忆方式:想想省略号 ... 中的每个点,都可以理解成占位符,表示任何类似的东西。