python学习之正则表达式

import re

ret = re.findall('w\w{2}l','hello world')
print(ret)

ret =re.findall('lzh','dsfsfsflzhfsfsffs')
print(ret)


元字符

.通配符
ret = re.findall('w..l','hello world')  # .只能代指任意一个字符
print(ret)

^
ret = re.findall('^h...o','hlsaodfhello')
print(ret)

$
ret = re.findall('a..x$','ffafsfsfsalexfsfs')
print(ret)

*:重复匹配[0,+oo)
ret = re.findall('a*','fsfsfafdfs')
print(ret)

+:[1,+oo)
ret = re.findall('as+','fsafsfafsfa')
print(ret)

ret = re.findall('a+f','fsafsfafsfa')
print(ret)

? [0,1]
ret = re.findall('a?b','aaaabhghabfb')
print(ret)

{}
ret =re.findall('a{5}b','aaaaab')
print(ret)

ret =re.findall('a{1,5}b','dsdaab')
print(ret)

结论: *等于{0,+oo}, +等于{1,+oo}, ?等于{0,1}


字符集
ret = re.findall('a[cde]x','aex')
print(ret)

ret = re.findall('[a-z]','aex')
print(ret)

ret = re.findall('[1-9a-zA-Z]','aexsfs3feff34ff')
print(ret)

^放在[]里表示取反
ret = re.findall('[^t]','ijishiftst')
print(ret)

ret = re.findall('[^ts]','ijishiftst')
print(ret)

\
反斜杠后边跟元字符去除特殊功能。
反斜杠后边跟普通字符实现特殊功能。
\d 匹配任何十进制数;他相当于类[0-9]。
\D 匹配任何非数字字符;他相当于类[^0-9].
\s 匹配任何空白字符;它相当于类[\t\n\r\f\v]。
\S 匹配任何非空白字符;它相当于类[^\t\n\r\f\v]。
\w 匹配任何字母数字字符;它相当于类[a-zA-Z0-9_]。
\W 匹配任何非字母数字字符;它相当于类[^a-zA-Z0-9_]
\b: 匹配一个特殊边界

print(re.findall('\d{11}','fsfsfs124424232342432dsd324'))
print(re.findall('\sasd','sff asd'))
print(re.findall(r'I\b','hello, I am a LIST'))

######################################

() |
print(re.search('(as)+','sdsfsfsfasas').group())
print(re.search('(as)|3','as3').group())


正则表达式的方法

1  findall(): 所有结果都返回到一个列表中
2  search(): 返回匹配到的第一个对象(object),对象可以调用group()返回结果
3  match(): 只在字符串开始匹配,也回匹配到的第一个对象(object),对象可以调用group()返回结果

ret = re.match('ddf','ddffsfsddf')
print(ret.group())

4  split()
ret = re.split('k','fsfskfsf')
print(ret)
ret = re.split('[fg]','dsdfskigls')
print(ret)

5  sub()
ret = re.sub('a..x','s..b','sfdalexfsfs')
print(ret)

6 compile()
ret1 = re.findall('\.com','dadafdfs.comadda')
print(ret1)
obj = re.compile('\.com')
ret2 = obj.findall('dadafdfs.comadda')
print(ret2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值