正则表达式大全

  • .可以匹配任意单个字符、字母、数字甚至是.字符本身
  • 前面加’\‘元字符,是用来转义
  • []用来定义一个字符集合
  • 字符区间
    • 0-9,匹配从0到9的所有数字
    • A-Z,匹配从A到Z的所有大写字母
    • a-z,匹配从a到z的所有小写字母
    • A-F,匹配从A到F的所有大写字母
    • A-z,匹配从ASCII字符A到ASCII字符z的所有字母。这个模式一般不常用,因为它还包含[和^等在ASCII字符表里排列在Z和a之间的字符
  • 在[]里面用^来排除某个字符集合
  • 需要转义的元字符
    • .
    • \
    • [
    • ]
  • 空白元字符
    • [\b] 回退(并删除)一个字符(Backspace键)
    • \f 换页符
    • \n 换行符
    • \r 回车键符
    • \t 制表符
    • \v 垂直制表符
  • 匹配数字
    • \d 任何一个数字字符(等价于[0-9])
    • \D 任何一个非数字字符(等价于[^0-9])
  • 匹配字母数字
    • \w 任何一个字母数字字符(大小写均可)或下划线字符(等价于[a-zA-Z0-9_])
    • \W 任何一个非字母数字或非下划线字符(等价于[^a-zA-Z0-9_])
  • 匹配空白字符
    • \s 任何一个空白字符(等价于[\f\n\r\t\v])
    • \S 任何一个非空白字符(等价于[^\f\n\r\t\v])
  • 在字符或字符集合后面加 + 用来匹配一个或多个
  • 在字符或字符集合后面加 * 可以匹配零个或多个
  • 在字符或字符集合后面加 ? 可以匹配零个或一个
  • 在字符或字符集合后面加 {数字} 用来匹配出现的次数,
    • {3}表示出现三次
    • {0,3} 表示可以出现0、1、2、3次
    • {2,} 表示至少出现2次
    • + 在功能上等价于{1,}
  • 所有以上重复匹配(除?外),在后面加?都表示懒惰型量词,懒惰型量词会尽可能少地去匹配
  • \b 表示单词边界,用来匹配一个单词的开头或结尾
    • \b匹配的是字符之间的一个位置:一边是单词(能够被 \w 匹配的字母数字字符和下划线),另一边是其他内容(能够被 \W 匹配的字符)
  • \B 是匹配字符边界,可以用来查找前后都有多余空格的字符
  • ^ 匹配一个字符串的开头位置
  • $ 匹配一个字符串的结尾位置
  • 用()包裹一个表达式
  • | 用来表示或
  • 子表达式可以嵌套
  • 用 \1 表示第一个子表达式,用 \2 表示第二个子表达式,以此类推
  • 在替换操作中,js用 $1 表示匹配的第一个子表达式,$2 表示匹配的第二个子表达式,以此类推
  • 大小写转换
    • \E 结束 \L 或 \U 转换
    • \l 把下一个字符转换成小写
    • \L 把 \L 到 \E 之间的字符全部转换成小写
    • \u 把下一个字符转换成大写
    • \U 把 \U 到 \E 之间的字符全部转换成大写
  • 各种环视操作
    • (?=) 肯定式向前查看
    • (?!) 否定式向前查看
    • (?<=) 肯定式向后查看
    • (?!=) 否定式向后查看
  • JavaScript不支持向后查看
  • 反向引用条件
    • (?(backreference)true),其中?表明这是一个条件,backreference 是一个反向引用
    • ?(1) 检查第一个反向引用是否存在,存在才执行后面的匹配
  • 环视条件
    • (?(环视操作)true)
  • 方法
    • exec: 用来搜索一个匹配的 RegExp 对象方法
    • match: 用来匹配一个字符串的 String 对象方法
    • replace: 用来执行替换操作的 String 对象方法
    • search: 用来测试给定字符串里是否存在匹配的 String 对象方法
    • split: 用来把一个字符串拆分成多个字串的 String 对象方法
    • test: 用来测试给定字符串里是否存在匹配的 RegExp 对象方法
  • js 中的flags,即 /pattern/flags
    • g 全局搜索
    • i 不区分大小写搜索
    • m 多行搜索
    • s 允许 . 匹配换行符
    • u 使用 unicode 码的模式进行匹配
    • y 执行"粘性 (sticky)“搜索,匹配从目标字符串的当前位置开始
  • 反向引用
    • $` 返回所匹配字符串之前的所有内容
    • $' 返回所匹配字符串之后的所有内容
    • $+ 返回最后一个匹配的子表达式
    • $& 返回所匹配到的所有内容