正则表达式速查手册

  1. 普通字符

    • [abc]匹配abc
    • [a-z]匹配小写字母,[A-Z]匹配大写
    • \s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。
    • \w 匹配 匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
    • \W 匹配非字母、数字、下划线。等价于 [^A-Za-z0-9_]
    • \d 匹配数字 \D匹配非数字
    • \un匹配Unicode字符,[\u4e00-\u9fa5]匹配所有中文
    • \xn 匹配ASCII编码,如n为两位16进制,如'\x41' 匹配 "A"(A为65, a为97)
  2. 特殊字符——定位符

    • ^匹配内容的开头
    • $匹配内容结尾
    • \b匹配单词边界
    • \B匹配非单词边界
  3. 特殊字符——限定符(修饰前面的表达式)

    • *零次或多次,贪婪(后面加上一个 ? 就可以实现非贪婪)
    • +一次或多次,贪婪(后面加上一个 ? 就可以实现非贪婪)
    • ?零次或一次
    • {n} 精确n次
    • {n,} 至少n次
    • {n,m}至少n次,至多m次
  4. 特殊字符——表达式字符

    • []用于标记 范围表达式

    • ()标记一个子表达式的开始和结束位置。反向获取可获取圆括号值(如 \1 获取第一个)

      如有有圆括号表达式,则最终的结果是一个数组,0号是匹配值,之后的是子表达式的值

    • | 或的与重重,如c|\d+匹配字符c或者数字

    • 标识取反,非的意思,如[\d+] ,注意要写在中括号里面

  5. 特殊字符——修饰符

    修饰符 含义 描述
    i ignore - 不区分大小写 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。
    g global - 全局匹配 查找所有的匹配项。
    m multi line - 多行匹配 使边界字符 ^$ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。
    s 特殊字符圆点 . 中包含换行符 \n 默认情况下的圆点 . 是 匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n。
  6. 特殊字符——其他

    • . 匹配 除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \.

    • exp1(?=exp2):查找 exp2 前面的 exp1。

    • exp1(?!exp2):查找后面不是 exp2 的 exp1。

    • (?<=exp2)exp1:查找 exp2 后面的 exp1。

    • (?<!exp2)exp1:查找前面不是 exp2 的 exp1。

    var n1=str.match(/runoob/);   // 查找第一次匹配项
    var n2=str.match(/runoob/g);  // 查找所有匹配项