保證其中包含大小寫字母、數字、ascii碼中存在的特殊字元,長度大於8位
「正規表示式,又稱規則表示式(英語:regular expression,在**中常簡寫為regex、regexp或re),是電腦科學的乙個概念。正規表示式通常被用來檢索、替換那些符合某個模式(規則)的文字」
re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。
re.match(pattern, string, flags=0)
pattern是匹配的正規表示式,string是用於匹配的字串。flag是標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等。
匹配成功re.match方法返回乙個匹配的物件,否則返回none。
match物件的**group(0)**用於返回匹配的整個字串,**span()**方法用於以元祖形式返回匹配的起始位置和結束位置。
>>> m = r't[io]+m'
>>> s4 = 'timooooo'
>>> re.match(m,s4).group(0)
'tim'
>>> s5 = 'timooom'
>>> re.match(m,s5).group(0)
'tim'
正規表示式為r』t[io]+m』,最前面的t和最後面的m就不講了,大家一看便知,我們重點講一下中間的 [io]+,[io]表示匹配的字元可以是中括號中的任意乙個i或o,而後面跟著的+號表示可以對[io]匹配一次或多次。所以只要滿足這一條件的字串都是可以被匹配的。
>>> m=r'[a-za-z]+'
>>> re.match(m,'dakshgysgdfscsdf').group(0)
'dakshgysgdfscsdf'
『.』用於匹配除換行符(\n)之外的所有字元。
『^』用於匹配字串的開始,即行首。
『$』用於匹配字串的末尾(末尾如果有換行符\n,就匹配\n前面的那個字元),即行尾。
『*』用於將前面的模式匹配0次或多次(貪婪模式,即盡可能多的匹配)
『+』用於將前面的模式匹配1次或多次(貪婪模式)
『?』用於將前面的模式匹配0次或1次(貪婪模式)
『*?,+?,??』即上面三種特殊字元的非貪婪模式(盡可能少的匹配)。
『』用於將前面的模式匹配m次到n次(貪婪模式),即最小匹配m次,最大匹配n次。
『?』即上面『』的非貪婪版本。
『\』:』'是轉義字元,在特殊字元前面加上\,特殊字元就失去了其所代表的含義,比如+就僅僅代表加號+本身。
『』用於標示一組字元,如果是第乙個字元,則標示的是乙個補集。比如[0-9]表示所有的數字,[0-9]表示除了數字外的字元。
『|』比如a|b用於匹配a或b。
『(…)』用於匹配括號中的模式,可以在字串中檢索或匹配我們所需要的內容。
re.search 掃瞄整個字串並返回第乙個成功的匹配。
re.search(pattern, string, flags=0)
print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配
print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配
(0, 3)
(11, 14)
re.match與re.search的區別re.match只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none;而re.search匹配整個字串,直到找到乙個匹配。
在字串中找到正規表示式所匹配的所有子串,並返回乙個列表,如果沒有找到匹配的,則返回空列表。
>>> a = 'ab23c7d89s'
>>> m = r'[0-9]+'
>>> num = re.findall(m,a)
>>> print(num)
['23', '7', '89']
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...