关于re的补充知识

正则表达式

字符串模式,判断字符串是否满足某一规则。

常用的正则表达式操作符

. 表示任一字符
[ ] 表示括号中范围的任一字符
[^ ] 表示除了括号中范围的任一字符
*表示0个或多个字符
+表示1个或多个字符
?表示0个或多个字符
|表示从左右表达式中任选一个
{m} 表示前边的字符会出现m次
{m,n} 表示前边的字符会出现m次到n次
^ 表示以什么字符串开头
$ 表示以什么字符串结尾
() 表示分组,括号中只能用|操作符
\d 表示数字
\w 表示单词字符,包括A-Z,a-z,0-9和下划线

对re库的常见操作

创建对象模式匹配

基本思路就是通过compile()将匹配规则赋给一个变量,通过变量的search()方法进行判断,如果匹配的上会返回匹配到的下标,如果匹配不上会返回None。
只会返回第一个匹配上的下标

import re
pat = re.compile("AA")  #此处的AA是正则表达式,用来验证其他的字符串
m = pat.search("ABC")  #search里的字符串时被校验的内容
print(m)  #None匹配不上
m = pat.search("ABCAA")
print(m)  #匹配得上会返回下标<re.Match object; span=(3, 5), match='AA'>
m = pat.search("ABCAADDCCAA")
print(m)  #<re.Match object; span=(3, 5), match='AA'>只返回第一次匹配的上的下标

不创建对象模式的匹配

基本思路就是直接通过re.search()进行匹配,search括号中包括两个内容,第一个字符串是规则,第二个字符串是要被校验的内容。同样会返回匹配到的下标。

import re
m = re.search("asd","Aasd")  #前边的是规则(模板),后边的是被校验的对象
print(m)  #<re.Match object; span=(1, 4), match='asd'>

findall()方法

findall()括号中包含两个内容,第一个是规则,第二个是要被校验的内容,在返回的时候,会返回所有匹配到的内容,以列表的形式进行存储。

import re
print(re.findall("a","ASDaDFGAa"))  #前边是规则后边是被校验的内容 输出一个列表包含所有符合条件的内容

查找字符串中的大写字符

import re
print(re.findall("[A-Z]","ASDaDFGAa"))  #查找大写字母

查找大写字母后边可以跟一个或多个字符。

import re
print(re.findall("[A-Z]+","ASDaDFGAa"))  #包含至少一个大写字母,后边可以跟多个

替换sub

sub()括号中包含三个内容,表示将第三个内容中的第一个内容用第二个内容替换。

import re
print(re.sub("a","A","abcdcasd"))  #把字符串中的a用A替换

小Taps

在写字符串的时候,最好在前边加上r,避免转义字符带来的麻烦

m = r"\abdnk\'"
print(m)  #\abdnk\' 不会转义
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值