Day1关于正则表达式小小的复习

正则表达式:查看一个字符串是否与我们所设定的字符串相匹配;快速检索文本,实现一些替换文本的操作。

import re
a='asd-dfa-ggr'
r=re.findall('asd',a)
print(r)

元字符
\d表示数字0-9 \D匹配非数字
\w全部数字和字母和下划线_ \W非单词字符空格啊换行啊\n\t等
\s空白字符
.匹配除换行符\n之外的其他所有字符

a='efav6varsvsd8vafrva7vrvsfv9rev0'
r=re.findall('[^0-9]',a)          # 找出所有非数字   ^非
t=re.findall('\D',a)     # r,t作用相同
print(r)
print(t)

匹配月份

a='1884年11月'
r=re.findall('\d{1,2}月',a) #最小是1,最大是12,{}限定匹配个数,1位数或2位数,所以1,2
print(r)

正则匹配字符集

a='aad,abd,acd,add,aed,afd,agd,ahd'
r=re.findall('a[a-e]d',a)         # 匹配两边是ad,中间是a-e的全部字符
print(r)

贪婪与非贪婪

a='python 2342java453php'
r=re.findall('[a-z]{3,6}',a)                  # 默认贪婪
print(r)

a='python 2342java453php'
r=re.findall('[a-z]{3,6}?',a)            # ?非贪婪,3,6按照3找,找到3个就满足
print(r)

符号* 匹配*前面的字符0次或者无限多次

符号+ 匹配+前面的字符1次或者无限多次

符号?匹配*前面的字符0次或者1次

符号?前面如果是一个区间,则改为非贪婪,如果是一个确定的数,则改为匹配0次或者1次*

a='pytho231python353pythonn32'
r1=re.findall('python*',a)
r2=re.findall('python+',a)
r3=re.findall('python?',a)
r4=re.findall('python{1,2}?',a)       # 变成非贪婪,前面只出现一次就停止
print(r1)
print(r2)
print(r3)
print(r4)

边界匹配符: ^前边界匹配 $后边界

a='100000234'
r=re.findall('^[0-9]{4,7}$',a)
print(r)

a='pythonpythonpythonpythonpythonpython'
r=re.findall('(python){2}',a)  
print(r)

上述代码结果为:[‘python’, ‘python’, ‘python’] 意思是有三组2个的python 即pythonpython这样有三组 所以输出三个python

re.I使.忽略大小写
re.S .能匹配除\n之外所有字符,即re.S使.能匹配\n

a='pythonc#\njava'
r=re.findall('C#.',a,re.I|re.S)    # 能匹配出c#和\n
print(r)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值