.
字符可以匹配任何单个的字符、字母、数字;一个正则表达式里允许多次使用\
字符是一个元字符(metacharacter,表示“这个字符有特殊含义,而不是字符本身含义”);出现在一个有着特殊含义的字符序列的开头,这个序列可以由任意字符组成- 元字符
[
和]
定义一个字符集合,元字符之间的所有字符都是该集合的组成部分,其本身不匹配任何字符 - 连字符
-
可以用来表示字符区间:0-9
,a-z
,A-Z
,按ASCII字符序;在[
和]
之间是特殊元字符,否则只是个普通字符只与自身匹配;字符集合里可以出现多个连字符 - 元字符
^
对字符集合取非匹配;也可以用于定义字符串开头,用在字符集合外面并位于模式开头,同时$
定义字符串结尾 - 几个空白元字符
[\b]
,\f
,\n
,\r
,\t
,\v
分别代表:回退(Backspace键)、换页符、换行符、回车符、制表符(Tab键)和垂直制表符 \d
匹配任何一个数字字符(等价于[0-9]
),\D
匹配任何一个非数字字符(等价于[^0-9]
);一般意义上,同一元字符的大写形式与它的小写形式在功能上往往刚好相反\w
匹配任何一个字母数字字符(大小写均可)或下划线字符(等价于[a-zA-Z0-9_]
),\W
等价于[^a-zA-Z0-9_]
\s
匹配任何一个空白字符(等价于[\f\n\r\t\v]
),\S
等价于[^\f\n\r\t\v]
- 十六进制数值要用前缀
\x
给出;八进制数值需要用前缀\0
给出 - 部分支持
\cZ
匹配Ctrl-Z
- POSIX字符类
+
字符作为后缀,用于多次匹配该类型字符;可用于字符集合之后*
元字符作为后缀,用于匹配零次或多次该类型字符?
元字符作为后缀,用于匹配零次或一次该类型字符,(?=)
用于向前找到其后指定符号的前缀匹配串,例如.+(?=:)
找到http://
中的http
;(?<=)
用于找到其后指定符号的后缀匹配串,例如(?<=\$)[\d.]+
找到pay $899.00
中的899.00
{
和}
用于匹配指定次数,可以是单个数;也可以是给定区间,区间用,
分隔开;区间右界缺省表示最少匹配次数;很多正则表达式不支持(?m)
放在模式最前,用于分行匹配模式(
和)
用于表示子表达式,可当作独立元素使用|
字符,或操作\1
用于回溯第一个子表达式,\2
等依此类推
- IP地址:
(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))
版本:nodejs: v15.6.0
,yarn: 1.22.5
,npm: 7.4.0
启动:
cd regular-expression
yarn
yarn start