正则表达式相关

来源:互联网 发布:数据统计软件 编辑:程序博客网 时间:2024/06/06 00:09

元字符

  • “^”:这个会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。
  • “$”:这个会匹配行或者字符串的结尾。
  • “\b”:不会匹配两边的字符,他会识别是否为单词的边界。
  • “\d”:匹配数字
  • “\w”:匹配字母数字和下划线
  • “\s”:匹配空格
  • “.”:匹配除了换行以外的任何字符

反义字符

  • “\W”:匹配任意不是字母数字下划线的字符
  • “\S”:匹配任意不是空白符的字符
  • “\D”:匹配任何非数字
  • “\B”:匹配任何非单词开头或结束的位置
  • “[^12b]”:匹配任何除12b以外的任意字符

在正则表达式中,默认是贪婪匹配的,那什么是贪婪匹配呢?

        var text="aaaaaaaaaaa bat cat aaa apple";        var pattern1=/a*/g;        var matches=pattern1.exec(text);        console.log(matches[0]);//aaaaaaaaaa        var pattern2=/a?/g;        var matches2=pattern2.exec(text);        console.log(matches2[0]);//a
  • 贪婪匹配 “*”:重复0次或多次,在我使用/a*/的时候,匹配出来的就是所有的a
  • 懒惰匹配 “+”:重复1次或更多次,与贪婪不同的是他至少一次
  • 占有匹配 “?”:重复0次或1次,如同上例,只会匹配到一个字符,现实的结果就是a
  • “{n}”:重复n次例如从aaaaaa中取俩字符,正则:”/a{2}/”
  • “{n,m}”:重复n次到m次:例如”a{1,2}”,匹配的是”a”也可以是”aa”
  • “{n,}”:重复n次或者更多次,至少n次
  • “*?”:重复任意次,但是尽可能少,例如123123,"/1.*?3/"只会匹配到第一个123
  • “+?”:重复1次或更多次,至少一次
  • “??”:重复0次或1次,尽可能少
  • “{n,m}?”:重复n~m次,尽可能少重复
  • “{n,}?”:重复n次以上,尽可能少