正则表达式大全
约 194 字 预计阅读 1 分钟
- .可以匹配任意单个字符、字母、数字甚至是.字符本身
- 前面加’\‘元字符,是用来转义
- []用来定义一个字符集合
- 字符区间
- 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) 检查第一个反向引用是否存在,存在才执行后面的匹配
- 环视条件
- 方法
- exec: 用来搜索一个匹配的 RegExp 对象方法
- match: 用来匹配一个字符串的 String 对象方法
- replace: 用来执行替换操作的 String 对象方法
- search: 用来测试给定字符串里是否存在匹配的 String 对象方法
- split: 用来把一个字符串拆分成多个字串的 String 对象方法
- test: 用来测试给定字符串里是否存在匹配的 RegExp 对象方法
- js 中的flags,即 /pattern/flags
- g 全局搜索
- i 不区分大小写搜索
- m 多行搜索
- s 允许 . 匹配换行符
- u 使用 unicode 码的模式进行匹配
- y 执行"粘性 (sticky)“搜索,匹配从目标字符串的当前位置开始
- 反向引用
- $` 返回所匹配字符串之前的所有内容
- $' 返回所匹配字符串之后的所有内容
- $+ 返回最后一个匹配的子表达式
- $& 返回所匹配到的所有内容