【第59天】python全栈从入门到放弃

2019-09-28  本文已影响0人  36140820cbfd

1. findall()

代码块
import  re

str_1='1342344jlksdkf438777'
res_1=re.findall('\d+',str_1)
print(res_1)    #['1342344', '438777']  返回所有的数字

res_2=re.findall('\s+',str_1)
print(res_2)    #[]  为什么字符串匹配就是空的呢。

2 search()

代码块
import re

ret2 = re.search('\d+','@$19874ashfk01248')

print(ret2) #  返回值类型: 正则匹配结果的对象<re.Match object; span=(2, 7), match='19874'>
#   返回值个数:1 如果匹配上了就返回对象

if ret2:
    print(ret2.group()) # 返回的对象通过group来获取匹配到的第一个结果

ret3 = re.search('\s+','hello19874ashfk01248')

print(ret3) #  返回值类型: None  如果没有匹配上就是None

3 match()

代码块
import  re

ret4= re.match('\d+','19874ashfk01248')   #返回一个对象,<re.Match object; span=(2, 7), match='19874'>

print(ret4.group())       #19874

ret5 = re.match('\d+','%^19874ashfk01248')

print(ret5)#none  必须开头就是匹配项才能匹配的上

4 替换replace()

代码块
name='wangsiyu'
res=name.replace('siyu','money')
print(name)
print(res)
代码块
import  re

str_1='sdjglklk98753lkds80kl'
res_1=re.sub('\d+','money',str_1)
print(str_1)   #sdjglklk98753lkds80kl
print(res_1)   #sdjglklkmoneylkdsmoneykl

res_2=re.subn('\d+','money',str_1)
print(res_2)    #('sdjglklkmoneylkdsmoneykl', 2)   返回结果,和替代的个数。

6切割split()和联合join()

代码块
a='wang|si|yu|'.split('|')    #把字符串转为列表
print(a)   #['wang', 'si', 'yu', '']
res='-'.join(a)   #把列表转为字符串
print(res)   #wang-si-yu-

#正则表达式来切割
import  re
b='wang54si67yu456today'

res=re.split('\d+',b)

print(res)   #['wang', 'si', 'yu', 'today']

7.compile和finditer

compile 把正则表达式编译起来复用

代码块
# compile时间效率 : 只有在多次使用某一个相同的正则表达式的时候,这个compile才会帮助我们提高程序的效率
import re


res_1=re.findall('\d','alex83egon20taibai40')

print(res_1)    #['8', '3', '2', '0', '4', '0']

ret = re.compile('\d')#将这个正则表达式编译起来重复用

res = ret.search('alex83egon-20taibai-40')
#
print(res.group())

finditer

代码块
# finditer  空间效率

import  re
ret = re.finditer('\d','sjkhkdy982ufejwsh02yu93jfpwcmc')

for r in ret:

    print(r.group())
上一篇下一篇

猜你喜欢

热点阅读