正则表达式基础学习

有小伙伴反馈正则表达式太难学了,本人通过尝试从全新的8个维度去学习正则表达式,希望对大家有所帮助
更多学习资源点我获取

1. 普通字符

  1. 普通字符正则表达式直接些,比如 正则是 get,那么匹配就是get,还有一些符号,比如@, %, _ 也是直接写
  2. 特殊符号,需要转移,特殊符号有 . * \ + [ ] ? { } ( ) ^ $, 需要前面加上 \来转义匹配, 比如匹配get*, 正则写成get*

2. 字符集合

  1. 单个字符集合是单个关键字得值范围,包含在一对[]中,比如匹配 get 和 got,正则:g[eo]t
  2. 多个字符集合, 需要写在一对()中, 比如匹配get 和 goat, 正则:g(e|oa)t
  3. 连续字符集合,使用-等, 比如 [a-d] 表示 [abcd], [a-dz] 表示[abcdz]
  4. 排除字符,使用^, 比如 [^a-d], 除a, b, c, d以外字符的字符, 如[^@+] 表示除@, +以外的字符, 比如g[^o]t, 表示是g开头, t结尾,且除去got的字符

3. 限定符

  1. 给前一个字符追加出现次数的范围
      • 表示出现0次或则多次, 相当于{0, }
      • 表示出现1次或则多次 相当于{1,}
    1. ?表示出现0次或则1次 相当于{0, 1}
      比如匹配god, good, gooood, 那么正则:go+d
  2. 给限定符追加具体次数,使用{}
    1. {3} 表示出现3次,
    2. {3, 6} 表示3-6次
    3. {3,} 表示3次以上
      比如匹配good ,goood, 正则go{2,3}d
  3. 模糊匹配范围时, 会产生贪婪匹配
    1. 正则(贪婪) g[a-z]+d, 匹配文本gadxxgod, 那么会整体匹配到最长的gadxxgod
    2. 正则(非贪婪)g[a-z]+?d, 匹配文本gadxxgod, 那么匹配到gad, god

4. 定位符

  1. 定位符有
    1. ^ 表示字符串开端
    2. $ 表示字符串结尾
    3. \b 表示单词边界, 字符与空格间的位置
    4. \B 表示非单词边界
      匹配手机号,正则 ^1[0-9]{10}$

5. 子表达式

  1. 内嵌的子正则表达式,包含在一对()中,可以看成一个整体
    比如(got)+ 表示got整体出现1次或则多次
  2. 使用|分割多个子表达式,比如g(e|oa)t
  3. 子表达式可以标记子匹配项, 比如匹配形式是AABB形式字符,正则 ([a-z])\1([a-z])\2

6. 省略符

  1. 省略符是为了简化正则表达式存在的元字符,以\开头
    比如 \d+ 等效[0-9]+
  2. 常用省略符有
    1. . 等效[^\n\r] 匹配除换行符外的任何单个字符
    2. \d 等效[0-9]
    3. \D 等效[^0-9]
    4. \s 等效[\f\n\r\v] 匹配任何空白字符,包括空格,制表符,换页符等
    5. \S 等效[^\f\n\r\v]
    6. \w 等效[A-Za-z0-9]
    7. \W 等效[^a-za-z0-9]

7. 修饰符

不区分大小写,多行匹配等, 不是正则的一部分,常见的有

  1. i 不区分大小写
  2. g 查找所有匹配项
  3. m 匹配多行
  4. s 默认. 不匹配\n,加上s后,可以包含\n

你可能感兴趣的:(IT资源,正则表达式,学习)