1."[]"称为字符集合,表示的是括号内的任意字符,注意是多选一。
2。"a-z"这种形式叫做字符区间,只要是再ASCII中的字符就可以用。如果首字符再表中的出现的地方晚于为尾字符出现的地方,则模式失效。
3.十六进制前缀"\x"和八进制前缀"\0"返回的是ASCII中的对应位数的字符。
4.字符集和中的"."或者"+"会自动转义,可以不加"\"。
5."*"、"{}"和"+"贪婪型的,会从头匹配尽量多的。懒惰型的指配到第一个匹配的就完了。处理方法是在后面增加一个?
6."\b"匹配的是"\w"和"\W"之间的位置,称为边界匹配符。匹配的是位置,不是字符,因此也不占匹配长度。
7.[(ab)(bc)]和(ab|bc)是一样的。
8.回溯引用"\1"只能用来匹配子表达式,即用“(”和“)”括起来的内容。计数从1开始。
9."[]"中的.和?不是元字符。^如果不在[]的第一个,那么代表的只是自己。
10.javascript不支持向后查找,即?<=。这种查找称为lookaround(环视),它只进行对匹配的检测,本身指匹配位置,不匹配内容。
11.使用 "/1[12]/" 比 (11|12) 更快,具体看nfa。