background image

2.字符类

将单独的直接符放进中括号内就可以组合成字符类

.一个字符类和它所包含的任何一个字符都匹配,所

以正则表达式

 / [abc] / 和字母 "a" , "b" , "c" 中的任何一个 都匹配.另外还可以定义否定字符类,这些类匹配

的是除那些包含在中括号之内的字符外的所有字符

.定义否定字符尖时,要将一个 ^ 符号作为从左中括号算

起的第

 一个字符.正则表达式的集合是 / [a-zA-z0-9] / . 

由于某些字符类非常常用

,所以 JavaScript 的正则表达式语法包含一些特殊字符和转义序列来表示这些

常用的类

.例如, \s 匹配的是空格符,制表符和其它空白符, \s 匹配的则是空白符之外的任何字符. 

正则表灰式的字符类

 

字符

 匹配 

____________________________________________________ 

[...] 位于括号之内的任意字符 

[^...] 不在括号之中的任意字符 

. 除了换行符之外的任意字符,等价于[^\n] 

\w 任何单字字符, 等价于[a-zA-Z0-9] 

\W 任何非单字字符,等价于[^a-zA-Z0-9] 

\s 任何空白符,等价于[\ t \ n \ r \ f \ v] 

\S 任何非空白符,等价于[^\ t \ n \ r \ f \ v]

\d 任何数字,等价于[0-9] 

\D 除了数字之外的任何字符,等价于[^0-9] 

[\b] 一个退格直接量(特例) 

________________________________________________________________ 

3.复制 

用以上的正则表式的语法

,可以把两位数描述成 / \ d \ d /,把四位数描述成 / \d \ d \ d \ d /.但我们还没有

一种方法可以用来描述具有任意多数位的数字或者是一个字符串

.这个串由三个字符以及跟随在字母之后

的一位数字构成

.这些复杂的模式使用的正则表达式语法指定了该表达式中每个元素要重复出现的次数.

指定复制的字符总是出现在它们所作用的模式后面

.由于某种复制类型相当常用.所以有一些特殊的字

符专门用于表示它们

.例如: +号匹配的就是复制前一模式一次或多次的模式.下面的表列出了复制语法.先看

一个例子

/\d{2, 4}/ //匹配 2 到 4 间的数字. 

/\w{3} \d?/ //匹配三个单字字符和一个任意的数字. 

/\s+java\s+/ //匹配字符串"java" ,并且该串前后可以有一个或多个空格. 

/[^"] * / //匹配零个或多个非引号字符. 

正则表达式的复制字符

字符

 含义

__________________________________________________________________ 

{n, m} 匹配前一项至少 n 次,但是不能超过 m 次

{n, } 匹配前一项 n 次,或者多次 

{n} 匹配前一项恰好 n 次

? 匹配前一项 0 次或 1 次,也就是说前一项是可选的. 等价于 {0, 1} 

* 匹配前一项 0 次或多次.等价于{0,} 

___________________________________________________________________