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)

  

  

 

posted @ 2016-03-09 08:38  willianflasky  阅读(220)  评论(0编辑  收藏  举报