专门为初学者编写的正则表达式入门教程

2020-05-10 20:00:16王振洲

我们也可以在正则表达式中组合范围和单个字符。

/[A-Za-z0-9_-]/g

我们的正则表达式 /[A-Za-z0-9_-]/g 匹配一个字符,该字符必须(至少)是以下字符之一:

A-Z a-z 0-9 _ 或者 -

我们也可以“否定”这些规则:

/[^aeiou]/g

/[aeiou]/g/[^aeiou]/g 之间的唯一区别是 ^ 紧跟在左括号之后。其目的是"否定"括号中定义的规则。它表示的意思是:

匹配任何不属于a、e、i、o和 u 的字符

3.1 例子

非法的用户名字符

/[^a-zA-Z_0-9-]/g

指定字符

/[A-HJ-NP-Za-kmnp-z2-9]/g

4 字符转义

字符转义是对某些通用字符类的简略表达方式。

4.1 数字字符 d

转义符 d 表示匹配数字字符 0-9。等同于 [0-9]

/d/g (这里请仔细看)

/dd/g

Dd 的反面,相当于[^0-9]

/D/g

4.2 单词字符 w

转义符 w 匹配单词字符。包括:

小写字母 a-z 大写字母 A-Z 数字 0-9 下划线 _

等价于 [a-zA-Z0-9_]

/w/g

/W/g

4.3 空白字符 s

转义符 s匹配空白字符。具体匹配的字符集取决于正则表达式引擎,但大多数至少包括:

空格 tab 制表符 t 回车 r 换行符 n 换页 f

其他还可能包括垂直制表符(v)。Unicode自识别引擎通常匹配分隔符类别中的所有字符。然而,技术细节通常并不重要。

/s/g