python re模块学习笔记

re模块总结

在使用re正则表达式时,先要使用re模块提供的特殊字符构建一个模式串pattern,再传入re模块提供的一些方法进行模式匹配

re模块中用来匹配单个字符的 特殊字符

  • .:匹配除换行符\n以外的任意字符
  • \w:匹配字母、数字或下划线。等价于[a-zA-Z0-9_]
  • \d:匹配数字。等价于[0-9]。
  • \s:匹配空白字符,包括空格、制表符、换行符等。
  • []:匹配方括号内指定的字符集合,可以使用字符-表示范围,或者使用字符^表示取反
  • 对于\W \D \S:匹配对应小写字符的补集

re模块匹配多个字符

  • *:匹配前一个字符0次或多次
  • +:匹配前一个字符1次或多次
  • ?:匹配前一个字符0次或1次
  • {m}:匹配前一个字符恰好m次
  • {m,n}:匹配前一个字符至少m次,至多n次

匹配分组

  • |:匹配左右两边任意一个模式串
  • ():将括号内的表达式作为一个分组,可以通过编号或名称引用
  • \num:引用编号为num的分组,每个括号为一个分组,从1开始编号
  • (?P<name>):给分组指定一个名称,每个括号为一个分组,可以通过\g或\g’name’引用

re模块中常用的方法

  • re.search(pattern, string):在字符串中查找第一个匹配pattern的子串,返回一个Match对象或None。
  • re.match(pattern, string):在字符串开头查找匹配pattern的子串,返回一个Match对象或None。
  • re.fullmatch(pattern, string):检查整个字符串是否完全匹配pattern,返回一个Match对象或None。
  • re.findall(pattern, string):在字符串中查找所有匹配pattern的子串,返回一个列表。
  • re.finditer(pattern, string):在字符串中查找所有匹配pattern的子串,返回一个迭代器。
  • re.sub(pattern, repl, string):在字符串中替换所有匹配pattern的子串为repl,返回一个新字符串。
  • re.split(pattern, string):根据pattern分割字符串,返回一个列表。

贪婪

  • 对于ab*,在匹配时默认会匹配尽可能多的b,例如,在匹配abbbbbc时,会匹配到abbbbb,此时认为是贪婪的。
  • 使用?使其变为非贪婪,ab*?此时会匹配尽可能少的b,而*是匹配前一个字符0次或多次,最少即为0次,得到a

2023.3.17

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星眺北海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值