Python3.5 学习五

心灵鸡汤电影推荐:

阿甘正传、辛德勒名单、肖申克的救赎、勇敢的心、角斗士、美国丽人、教父、钢琴师、指环王、西雅图不眠夜、廊桥遗梦、可可西里的美丽传说、放牛班的春天、血钻、战争之王、上帝之城、中央车站、猜火车、低俗小说、华尔街之狼

程序的解耦

模块

正则表达式

import re

re.match('','')全匹配

re.search('','')任意部分匹配

re.findall('','')查所有

re.split('','') 分割

re.sub('','','')  替换  re.sub('[0-9]+','|',"adfadf12131adfas13f1ds3f13a")

正则表达式特殊符号意义:

 ‘.’  默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行

‘^’  匹配字符开头,若指定flag MULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)

'$'  匹配字符结尾,另同上

'*'  匹配*前的字符0次或多次  re.findall(“ab*”,"cabb3abcbbac")  结果为["abb","ab","a"]

'+'  匹配前一个字符1次或多次  re.findall("ab+","ab+cd+abb+bba")  结果为["ab","abb"]

'?'  匹配前一个字符1次或0次  

‘{m}’  匹配前一个字符m次

‘{n,m}’  匹配前一个字符n到m次  re.findall("ab{1,3}","abb abc abbcbbb")  结果为['abb','ab','abb']

'|'  匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group()  结果为“ABC”

‘(...)’  分组匹配  re.search("(abc){2}a(123|456)c",“abcabca456c””).group()  结果 abcabca456c

 

'\A'  只从字符开头匹配,  re.search("\Aabc","alexabc")  结果是匹配不到的

'\Z'  匹配字符结尾,同$

'\d'  匹配数字0-9

‘\D’  匹配非数字

'\w'  匹配[A-Za-z0-9]

'\W'  匹配非[A-Za-z0-9]

'\s'  匹配空白字符、\t、\n、\r,re.search("\s+","ab\tc1\n3").group()  结果为  ’\t

匹配反斜杠的困扰:

 

特殊标记的含义:

  flags=re.I  忽略大小写

  flags=re.M 表示将字符串视为多行,从而^匹配每一行的行首,$匹配每一行的行尾

  flags=re.S  表示.的作用包括换行符  

  import re

  a = '''asdfsafhellopass: 234455 worldafdsf '''

  b = re.findall('hello(.*?)world',a)

  c = re.findall('hello(.*?)world',a,re.S)

  print 'b is ' , b

  print 'c is ' , c

 

  运行结果如下:

  b is []

  c is ['pass:\n\t234455\n\t']

 

  作业:自己写一个计算器,要求将一个字符串形式的公式放进去,直接能算出结果来,整个计算器的优先级、加减乘除运算都要自己写代码去完成。

 

  

 

posted on 2018-08-02 11:26  PIANO_HUHU  阅读(126)  评论(0编辑  收藏  举报

导航