正则表达式
一、原子
1、所有看的见的看不见的字符都是原子 abcd121212\n \r*&&45
2、表示所有数字的字符 \d 【0-9任意一个字符】
3、表示所有非数字的字符 \D 【除0-9任意一个字符】
4、表示所有能够当作变量使用的原子 \w 【0-9a-zA-Z任意一个字符和下划线】
5、表示所有能不够当作变量使用的原子 \W 【除0-9a-zA-Z任意一个字符和下划线】
6、表示所有不可见原子 \s [空格、\n、]
7、表示所有可见原子 \s [任意一个可见字符]
8、词边界 \b [能够当单词分割的符号 ]
9、非词边界 \B [不能够当单词分割的符号 ]
二、限定符
1、[] 原子列表:自定义原子范围 【表示列表中任意一个字符】[0123456789]
2、[^]排查列表:自定义原子范围 【表示列表外任意一个字符】
3、n+ 1个以上的指定原子
4、n* 0个以上的指定原子
5、n? 0个或者1
6、{m,n} 指定原子的最少m个最多n个
7、{m,} 指定原子的最少m个
8、{m}指定原子的m个
9、^ 限制字符必须在字符的开头位置
10、$ 限制字符必须在字符的结尾位置
11、. 所有原子 \n除外
12、| 唯一一个逻辑运算符
13、()修饰原子符
a、将多个原子视为一个原子处理,方便使用元字符
b、将()中的内容暂存起来。
c、改变优先级别 主要配合|使用
14、?=n 匹配任意紧更n的字符 ?=b 例如: var reg= /a(?=b)/g ; var str='abcdabcd'; reg.match(str) 匹配出 ['a','a']
!?=n 匹配任意非紧更n的字符
?: 不捕获分组
15、反向引用 匹配
xxxx reg=/\w\1\1\1/g;
xxyy reg=/\w\1\w\2/g;
三、修正符 可以多个一起使用
i 忽略大小写
g 全局搜索
m 将字符中的\n断开,当作多个字符串处理
四、非贪婪模式 .*?
五、取消暂存操作 ?: