正则表达式

练习地址 https://regexr.com/

https://www.codejiaonang.com/#/course/regex_chapter3/0/0

基础

[ ] 字符组,允许匹配一组可能出现的字符

使用区间 [0-9a-zA-Z]

匹配特殊符号,使用转义符 \。获取字符中的-\-

四种快捷方式,取反变大写:

  • \d 匹配任意数字 0-9
  • \w 匹配字母,数字,下划线
  • \s 匹配空白字符
  • \b 匹配的是单词的边界

^ 放在区间内部 [^a-z] 取反:匹配不在集合中的字符。 n[^e] n后面不是e的字符

^ 放在区间外部 ^[] 指定的是一个字符串的开始

$ 指定的是一个字符串的结束

. 匹配任何单个字符,只能在区间外

? 可选字符,该字符出现零次或一次。colo?r 匹配到color,colour

{} 在一个字符组后加上{N} 就可以表示在它之前的字符组出现N次

+ 匹配一个或者多个,等价于 {1,}

* 匹配零个或者多个


^http.+\/$ 匹配以 http开头,以/结尾的所有数据

^0\d{2}-?[^0]\d{6}$ 开头为0+两位小数+'-'可不要+开头不为零+6个数字结束并且最后一个数字是6


分组

  • () 使用分组提取数据
  • (|) 或者(or) 条件分组
  • (?:) 非捕获分组
  • \ 使用\N可以引用编号为N的分组。(\w+)[](\1)

断言

  • (?=) 正向先行断言,所在位置右侧必须能匹配表达式
  • (?!) 反向先行断言,右边不能出现某字符
  • (?<=) 正向后行断言,所在位置左侧必须能匹配表达式
  • (?<!) 反向后行断言,左边不能出现某字符
posted @ 2022-06-02 16:51  Naitiam  阅读(52)  评论(0)    收藏  举报