Skip to content

Latest commit

 

History

History
63 lines (43 loc) · 2.42 KB

Regexp.md

File metadata and controls

63 lines (43 loc) · 2.42 KB

正则表达式


正则表达式简介

  • 简洁高效的字符串处理工具,在多种语言中支持,并语法规则通用。常用来做文本的校验和查找。

正则表达式语法

  • 字符 + 数量

    1. 字符的表示规则

      语法 含义
      [0-9] / [a-z] /[A-Z]/[123abc] 从0-9的所有数字,从a-z的所有字母,从A-Z的所有字母
      . 匹配所有字符,除过换行
      \d = [0-9]
      \D= [ ^ 0-9]
      所有数字
      \w = [0-9a-zA-z_]
      \W=[ ^ 0-9a-zA-z]
      所有数字字母和下划线
      \s = [\f\n\r\t\v]
      \S= [ ^ \f\n\r\t\v]
      所有非空白字符
    2. 数量表示规则

      语法 含义
      * 零次到多次
      零次或一次
      {n} n次
      {n,} n次到多次
      {n,m} n次到m次
      + 一次到多次
    3. 位置表示规则

      语法 含义
      ^ 匹配字符串开始位置
      $ 匹配字符串结束为止
      \b 匹配单词边界
      \B 非单词边界
  • 特殊字符

    匹配特殊字符需要使用 \ 进行转译。常见的特殊字符有:

    $ () * + . [ ? \ ^ { |

  • 贪婪和非贪(在量词后增加?代表非贪婪)

    1. 贪婪:总是尝试匹配尽可能多的字符
    2. 非贪婪:总是尝试匹配尽可能少的字符
  • 断言

    符号 名称 含义
    reg(?=exp) 零宽度正先行断言 reg匹配的内容后面的内容满足exp规则
    reg(?!exp) 零宽度负先行断言 reg匹配的内容后面的内容不满足exp规则
    (?<=exp)reg 零宽度正后发断言 reg匹配的内容前面的内容满足exp规则
    (?<!exp)reg 零宽度负后发断言 reg匹配的内容前面的内容满足不满足exp规则