预定义类匹配常见的字符类
1常见的预定义类字符(除了回车符和换行符之外的所有字符)
\d 数字字符
\D 非数字字符
\s 空白符
\S 非空白符
\w 单词字符(如数字、字母和下划线)
\W 非单词字符
2 正则表达式还提供了几个常用的边界匹配字符
^ 以前开始
$ 以末开始
\b 单词边界
\B 非单词边界
3 非贪婪模式
让正则表达式尽可能少匹配,一旦匹配成功就不再匹配
4 贪婪模式
让正则表达式尽可能多匹配,匹配完所有能匹配的
5 把非贪婪模式改为贪婪模式在量词后面加上问号,如:{3,8}?
6 使用( )进行分组,使量词作用于分组,如:(my){3}括号里的单词重复三遍
7 使用 | 选择她还是他,或者的意思。如(m|y)选择m或者y
8 反向引用,如:2017-06-28=>06/28/2017
写成’2017-06-28’.replace(/(\d{4})-(\d{2})-(\d{2})/g, ’$2$3$1’)
9 忽略分组
不希望捕获某些分组,在分组内加上问号,如:(?:my).(ok)
10 常见的量词
?出现零次或一次(最多出现一次)
+ 出现一次或多次(最少出现一次)
* 出现零次或多次(任意次)
{n,}至少出现一次
{n}出现n次
{n,m}出现n到m次
11 正则表达式从文本头部向尾部开始解析,文本尾部方向称为“前”
12 前瞻就是正则表达式匹配到规则的时候,向前检查是否符合断言
13 后瞻则方向相反,JavaScript不支持后瞻
14 符合和不符合特定断言称为肯定或正向匹配和负向或否向匹配
正向前瞻exp(?=assert)
负向前瞻exp(?!=assert)
正向后顾exp(?<=assert)
负向后顾exp(?<!assert)