Skip to content

正则表达式

约 698 个字 预计阅读时间 2 分钟

定义

一种特殊的字符序列,帮助你方便地检查一个字符串是否和某个模式相匹配

使用re来匹配正则表达式

re模块提供了一组函数,允许在字符串中进行,模式匹配,搜索和替换操作

re模块使得python代码拥有完整的正则表达式功能

正则表达式

正则表达式的模式包括一下内容

  1. 字面值字符,例如字母数字和空格,可以直接匹配他们自身
  2. 特殊字符,例. * + ?具有特殊的含义和功能
  3. 字符类:用方括号[]包围的字符集合,用于匹配方括号内的任意一个字符
  4. 元字符,例如\d,\w,\s等,用于匹配特定类型的字符,例如数字,字母,空白字符
  5. 边界符号:例如^,$,\b,\B等,用于匹配字符串的开头结尾或者单词边界

简单上手

Text Only
^[0-9]+abc$
  1. ^为匹配输入字符串的开始位置
  2. [0-9]+匹配多个数字,[0-9]匹配单个数字,+匹配一个或者多个
  3. abc$匹配字母abc并且以abc结尾,$为匹配输入字符串的结束位置
Text Only
^[a-zA-Z0-9_-]{3,15}$

还是一样 1. ^开始匹配字符串的开头 2. [a-zA-Z0-9_-]表示字符集,包含小写字母,大写字母,数字,下划线和连接字符- 3. {3,15}表示前面的字符集最少出现3次最大出现15次,从而限制了用户名的长度在3-15个字符之间

正则表达式元字符和特性

字符匹配

  1. 普通字符:普通字符按照字面意义进行匹配,例如匹配字母"a"将匹配到文本的"a"字符
  2. 元字符:元字符除了具有特殊的含义,例如\d匹配任意数字字符,\w匹配任意字母数字字符,.匹配任意字符等

量词

  1. *匹配前面模式0次或者多次
  2. +匹配前面模式1次或者多次
  3. ?匹配前面模式0次或者1次
  4. {n}匹配前面的模式恰好n次
  5. {n,}匹配前面的模式至少n次
  6. {n,m}:匹配前面的模式至少n次且不超过m次

字符类

  1. []匹配方括号内的任意一个字符
  2. [^]匹配除了括号内的字符以外的任意一个字符

边界匹配

  1. ^:匹配字符串的开头
  2. $匹配字符串的结尾
  3. \b匹配单词边界
  4. \B匹配非单词边界

分组和捕获

  1. ( ):用于分组和捕获子表达式。
  2. (?: ):用于分组但不捕获子表达式。

特殊字符

  • \:转义字符,用于匹配特殊字符本身。
  • .:匹配任意字符(除了换行符)。
  • |:用于指定多个模式的选择。

Comments