-
字符组
[]
与多选结构()
的区别:
一个字符组只能匹配目标文本中的单个字符
,
而每个多选结构自身都可能是完整的正则表达式,都可以匹配任意长度的文本。 -
多选结构
()
后面如果没有量词(?、*、+),可以去掉()
因此:/(abc)/
等价于/abc/
-
问:
[^xxx]
:匹配一个不是x的字符,还是匹配一个不是xxx的字符?
答:
元字符作用于紧邻的字符,因此[^xxx]
:匹配一个不是x的字符
如果想匹配一个不是xxx的字符,可以用多选结构()
:[^(xxx)]
-
区别:
^q
:以q开头
[^q]
:不是字符q(在字符组中,表示不是
的意思) -
区别:
[q|Q]
:q或|或Q
[qQ]
:匹配q或Q,等价于(q|Q)
-
区别:
12.05
:点号代表任意字符
[12.05]
:字符组里,元字符点号只是代表点号 -
区别:
[0-9]
:连字符不在字符组的开头,就是表示范围
[-0-9]
:匹配连字符和一个数字 -
[0-9]
等同于d
:代表一位数字;
[a-z0-9A-Z_]
等同于w
(如果只考虑英文的话):代表一个数字、英文字母或下划线 -
[\/]
代表可以是也可以是
/
-
()
:匹配并捕获,?:
:匹配非捕获,?=
:非匹配 -
/.js(?.*)?$/
匹配:.js、.js?、.js?xxx
.
:任意一个字符
.*
:0个或多个字符