正则学习

正则学习

字符类[ ]

符合某些特征的一个对象
/[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

你可能感兴趣的