Learning Record:python(re)

正则表达式库re 部分函数含义(一)

import re

常用操作符

符号 符号含义
. 表示任何一个单字符
[] 表示一个取值范围
[^] 表示一个非取值范围
+ 表示前一个字符1次或无限次扩展
* 表示前一个字符0次或无限次扩展
? 表示前一个字符0次或1次扩展
表示 或 的关系
{m} 表示前一个字符m次扩展
{m,n} 表示前一个字符m至n次(包含n次)扩展
^ 表示前一个字符为正则表达式开头
$ 表示前一个字符为正则表达式结尾
() 分组标记,组内只能使用
\d 表示数字,即[0-9]
\w 表示字符,即[A-Za-z0-9_]
\b 表示字符边界位置,不消耗字符
\s 表示空格符
\W 表示除了[A-Za-z0-9_]以外的字符
\D 表示除了数字外的字符
\S 表示除了空格符以外的字符
\B 表示除了字符串开头与结尾的位置

常用函数

re.search(pattern, string, flags=0) # 在一个字符串中搜索出匹配正则表达式的第一个位置,返回match()对象

re.match(pattern, string, flag=0) # 从一个字符串的起始位置开始搜索,返回match()对象, 匹配后放入match.group()
# 注意使用match()方法时,string与pattern的头部要求一致。

re.findall(pattern, string, flag=0) # 搜索字符串,以列表形式返回全部可以匹配的字符串

re.split(pattern, string, maxsplit, flags=0) # 将一个字符串按照正则表达式匹配结果进行分割,返回列表类型

re.finditer() # 搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素都是match对象

re.sub(pattern, repl, string, count=0, flags=0) # 在字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

re.compile(pattern, flags=0) # 将正则表达式的字符串形式变异成正则表达式对象
参数 含义
pattern 正则表达式表示
string 待匹配字符串
falgs 正则表达式控制标记
maxsplit 最大分割数,剩余部分作为最后一个元素输出
repl 替换待匹配字符串的字符串
count 匹配的最大替换次数
falgs值:
  • re.I/ re.IGNORECASE 忽略正则表达式大小写
  • re.M/ re.MULTILINE ^操作符能够将给定字符串的每行当做匹配开始
  • re.S/ re.DOTALL .操作符能够匹配所有字符,默认匹配除换行外的所有字符

re库的等价用法

  1. 函数式用法
  2. 面向对象式用法
    将一个正则表达式通过pat = re.compile(pattern)封装为一个对象。
    通过 rst = pat.search(string) 调用该正则表达式
    PS:pattern, string含义同上
re库的match对象介绍
常用属性
属性 属性含义
match.string 待匹配的文本
match.re 待匹配的正则表达式对象
match.pos 正则表达式搜索文本的开始位置
match.endpos 正则表达式搜索文本的结束位置
常用方法
方法 方法含义
match.group(0) 获得匹配后的所有字符串
match.group(i) 获得匹配后的第i个符合条件的字符串
match.start() 匹配字符串在原始字符串的起始位置
match.end( ) 匹配字符串在原始字符串的结束位置
match.span() 返回一个元组 (.start(),.end())

re库使用须知

默认贪婪匹配:即在有一定歧义的情况下,默认匹配最长的字符串

防止贪婪匹配的最小匹配操作符:
最小匹配操作符 匹配符含义
*? 前一个字符0次或无限次扩展的最小匹配
+? 前一个字符1次或无限次扩展的最小匹配
?? 前一个字符0次或1次扩展的最小匹配
{m,n}? 前一个字符扩展m至n(含n)次的最小匹配
发布了8 篇原创文章 · 获赞 19 · 访问量 552

猜你喜欢

转载自blog.csdn.net/evil126126/article/details/105559266