正则学习
类
字符类[ ]
符合某些特征的一个对象
/[ABC]/ 表示匹配ABC 中的一个即可
- 反向类[^]在中括号中加^
例:[ ^A ] 就是匹配不是A的字符
范围类[A-Z]
可以匹配A-Z内的任意一个字符
预定义类
- 预定义字符:
\d 表示数字
- 边界字符
\b 表示边界
^在[]外表示匹配开头的意思
$表示匹配结尾的意思
量词
{n} 匹配字符串长度为n
{m,n} 匹配字符串长度最小为m,最大为n
{m,} 匹配字符串长度最小为m,最大为无穷
{0,n} 匹配字符串长度最小为空,最大为n
+ 出现次数>=1
* 现次数>=0
? 出现次数 0或者1
. 可以匹配任意字符,除了空白字符中的换行符\n
贪婪模式
- 12345678.replace(/\d{3,6}/,‘x’) 输出X78
非贪婪模式
只需要在量词后面添加一个问号
- 12345678.replace(/\d{3,6}?/,‘x’) 输出XX78 尝试最少可能的匹配
分组
使用()可以使量词最用与分组而非紧挨着它的单词
‘a1b2c3d4’.replace(/([a-z]\d){3}/g),‘x')
输出xd4
或
a|b
反向引用
$引用(捕获)
2019-12-05 替换成12/05/2019
'2019-12-05'.replace('/(/d{4}-(\d{2})-(/d{2}))/g','$2/$3/$1')
$是以分组捕获
不想捕获分组的时候只需要在分组内加上?:
(?:gray).(ok) 这里$1是ok
前瞻和后顾
待学习
原本含义的字符
待学习
元字符(代表特殊含义的字符)
待学习
XMind - Trial Version
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。