正则学习
Posted 园艺小妹儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则学习相关的知识,希望对你有一定的参考价值。
正则学习
类
字符类[ ]
符合某些特征的一个对象
/[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
以上是关于正则学习的主要内容,如果未能解决你的问题,请参考以下文章