正则表达式

界定符

  • 在js中界定符为/
  • 界定符并不作为正则表达式的一部分,只是便于解析器识别正则表达式

原子

  • 在正则表达式中原子作为最小匹配单位,分为可见原子和不可见原子

可见原子

  • 就是任何Unicode编码表可以找到的可见字符
    • 标点符号
    • 数字,字母
    • 汉语,日语,阿拉伯语等象形文字
    • Φ,δ,β,γ等数理化符号

不可见原子

  • 就是任何Unicode编码表可以找到的不可见字符
    • \n 换行
    • \r 回车
    • \t 水平制表
    • 空格
    • 其他

元字符

  • 筛选原子
    • |选择关系,可以理解为or
    • [],匹配方括号中的任意一个字符
    • [^ ]匹配除过方括号内的任意一个字符
  • 表示原子的集合
    • . 除换行符之外的任意一个字符
    • \d 匹配任意一个十进制数字
    • \D 匹配任意一个十进制数字
    • \s 匹配任意一个不可见原子
    • \S 匹配任意一个可见原子
    • \w 匹配任意一个字母数字下划线
    • \W ......

量词

  • 定义原子匹配次数
    • {n} 匹配原子出现n次
    • {n,m} 匹配原子出现n~m次
    • {n,} 匹配原子出现n次以上
    • * 匹配原子出现{0,}次
    • + 匹配原子出现{1,}次
    • 匹配原子出现{0,1}次

边界控制

  • 用于指定模式的边界条件
    • ^ 开头
    • $ 结尾
    • () 将括号部分看做一个原子(模式单元)

贪婪模式和懒惰模式

  • 正则表达式在匹配时会尽可能多的匹配符号模式的字符串,举个例子
'123456789'.replace(/\d{2,5}/g,'x');
//xx
  • 懒惰模式正好相反,当存在冲突时,尽可能的少匹配
'123456789'.replace(/\d{2,5}?/g,'x');
//xxxx9

修正模式

  • i 忽略大小写
  • g全局匹配
  • m多行匹配

测试地址

你可能感兴趣的:(正则表达式)