Skip to content

正则表达式

什么是正则表达式?

正则表达式 (Regular Expression 即 RegExp),是计算机科学的一个概念,它通常被用来搜索、替换那些符合某个规则的文本。

它可以用来匹配 特殊字符串有特殊搭配原则 的字符串

在 Python 中通过内置的 re 模块提供对正则表达式的支持。

在学习 re 模块的使用之前,先要了解几个关于 正则表达式 的知识:转义符、元字符

转义符

转义符用于标识特殊字符,通常以反斜杠 \ 开头,使得某些字符具有特殊含义,或解除它们的特殊含义。

例子:

转义符的使用说明
\n换行符
\t制表符(Tab)
\\反斜杠
\'单引号
\r回车符
\b退格符
\f换页符
"asd\"dsa"在字符串中加入双引号

元字符

元字符正则表达式 中具有特殊含义的字符,通常用于匹配特定的模式。

元字符描述
.匹配除换行符(\n\r)之外的任何单个字符
^匹配字符串的开头
$匹配字符串的结尾
*匹配前一个字符 0 次 或 多次
+匹配前一个字符 1 次 或 多次
?匹配前一个字符 0 次 或 1 次
{n}匹配前一个字符恰好 n 次
{n,}匹配前一个字符 至少 n 次
{n, m}匹配前一个字符 至少 n 次,至多 m 次
\d匹配数字(等价于 [0-9]
\D匹配非数字
\w匹配字母、数字或下划线(等价于 [a-zA-Z0-9_]
\W匹配非字母、数字或下划线
\s匹配空白字符串(包括空格、制表符、换行符等)
\S匹配非空白字符串
[]匹配括号内的任意一个字符
()组,表示一个子模式,可以用于提取匹配内容

re 模块

在使用 re 模块时需要先进行引用。

py
import re

常用函数

  • re.match(pattern, string):从字符串开头匹配模式
  • re.search(pattern, string):从字符串中搜索模式
  • re.findall(pattern, string):返回所有匹配的子串
  • re.sub(pattern, repl, string):替换匹配的子串
  • re.split(pattern, string):根据模式分割字符串

匹配对象

如果匹配成功,match()search() 函数会返回一个匹配对象(如果没匹配到返回 None),包含以下方法:

  • group():返回匹配的子串
  • start():返回匹配的子串的起始位置
  • end():返回匹配的子串的结束位置
  • span():返回匹配的子串的起始和结束位置