——正则re

 正则处理东西必须得是字符串。

1.基本的正则符号

.  匹配任意字符

\w  匹配数字字母下划线

\s  匹配空白字符

\d  匹配数字

^  匹配字符串的开始

[^]  取反

$  匹配字符串的结束

*  匹配0次或者多次

+  匹配一次或者多次

? 匹配0次或者1次

2.贪婪模式

贪婪模式(.*):尝试匹配尽可能多的字符 非贪婪模式(.*?)

尝试匹配尽可能少的字符(匹配到结果就行)

3.五种函数

1.re.match()

用来判断一个字符串中的一部分是否符合正则规则要求如果符合返回一个对象,可用groups调用,如果不符合,返回None
import re
strs = '123456789'
# 从字符串开头开始匹配,匹配严格适合做过滤
result = re.match('^(\d*)$',strs)
print(result)  #<re.Match object; span=(0, 12), match='1234ABC56789'>
if result:
    print('是纯数字')  #是纯数字
    print(result.groups())  #('123456789',)
else:
    print('不是纯数字')

2.re.search()

strs = '123456789'
result = re.search('[A-Z]+',strs)
print(result)

3.re.findall()

strs = "hsgjfQ#lks5\n32333d总共sg\tj43^t哈哈utr$;大地瓜ajg;g46    4j;wahj;$#ahja"
result1 = re.findall('.+?',strs,re.S)
print(result1)
result1 = re.findall('[^\w\s]+',strs,re.S)
print(result1)  #['#', '^', '$;', ';', ';', ';$#']
result1 = re.findall('[0-9]{2}',strs,re.S)
print(result1)  #['32', '33', '43', '46']

#第二种写法
my_com = re.compile('[0-9]{2}',re.S)
result2 = my_com.findall(strs)
print(result2)



result1 = re.findall('.*?3d(.*?)sg.*?3\^t(.*?)ut.*?r\$;(.*?)aj.*?',strs,re.S)
print(result1)  #[('总共', '哈哈', '大地瓜')]
result1 = re.findall('[\u4e00-\u9fa5]+',strs,re.S)
print(result1)  #['总共', '哈哈', '大地瓜']

4.re.sub()

strs = "hsgjfQ#lks5\n32333d总共sg\tj43^t哈哈utr$;大地瓜ajg;g46    4j;wahj;$#ahja"
result = re.sub('[^\w\s]','',strs)
print(result)

5.re.split()

用正则对字符串进行拆分,拆分后用于拆分的字符串消失
result = re.split('\d+',strs)
print(result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值