Python3.5 學習五

心靈雞湯電影推薦:正則表達式

阿甘正傳、辛德勒名單、肖申克的救贖、勇敢的心、角鬥士、美國麗人、教父、鋼琴師、指環王、西雅圖不眠夜、廊橋遺夢、可可西里的美麗傳說、放牛班的春天、血鑽、戰爭之王、上帝之城、中央車站、猜火車、低俗小說、華爾街之狼spa

程序的解耦code

模塊ci

正則表達式字符串

import restring

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

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

re.findall('','')查全部import

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']

 

  做業:本身寫一個計算器,要求將一個字符串形式的公式放進去,直接能算出結果來,整個計算器的優先級、加減乘除運算都要本身寫代碼去完成。

相關文章
相關標籤/搜索