正则表达式札记

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。

原文地址:https://www.cnblogs.com/sskyy/p/2535221.html