读《精通正则表达式(第三版)》笔记
-
字符组
[]与多选结构()的区别:
一个字符组只能匹配目标文本中的单个字符,
而每个多选结构自身都可能是完整的正则表达式,都可以匹配任意长度的文本。 -
多选结构
()后面如果没有量词(?、*、+),可以去掉()
因此:/(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个或多个字符
浙公网安备 33010602011771号