python3-day4(re正则表达式,冒泡)
一、正则表达式常用
1.re.match:只尝试从字符串的查找,后面不作查找。
例子:
import re text="aabcdefg123123" m=re.match('a',text) if m: print(m.group()) else: print("not match") #结论只能匹配开头a,其它均无法匹配。
2.re.search:在字符串内查找,只要找到第一个匹配就返回,后面不作查找。
import re text="aabcdefg123123" m=re.search('123',text) if m: print(m.group()) else: print("not match") #结论只能匹配123,第二个123不作查找。
3.re.match和re.search区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配,找到一个匹配,就返回后面不作查找。
4.re.findall:找到所有要匹配的字符并返回列表格式
import re text="aabcdefg123123" m=re.search('123',text) if m: print(m) else: print("not match") 结果: [123,123]
5.re.split:将匹配到的格式当做分割点对字符串分割成列表
import re text="tom1cat2dog" m=re.search('[0-9]',text) if m: print(m) else: print("not match") 结果: ['tom','cat','dog']
6.re.sub:替换匹配到的字符
import re text="tom1cat2dog" m=re.search('[0-9]','#',text) if m: print(m) else: print("not match") 结果:
tom#cat#dog
7.re.complie:
可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。下面是一个正则表达式对象的一个例子:
import re text="tom1cat2dog" regex=re.compile('[0-9]') m=regex.findall(text) if m: print(m) else: print("not match") 结果: ['1','2']
8.冒泡算法
#!/usr/bin/env python3 data=[10,4,33,21,54,3,8,11,5,22,2,1,17,13,6] counter=0 for j in range(1,len(data)): for i in range(len(data)-1): #j,为优化程序,1.解决out of range,2.解决没有必要循环 if data[i] > data[i+1]: data[i],data[i+1]=data[i+1],data[i] counter +=1 counter +=1 print(data) print("Count:",counter)