-用來指定乙個字元集合(字元直接是「或」的關係,不是乙個特定的字串,跟『abc』不同):[abc],[a-z]
-在字符集中,元字元$不起作用[abc$],[$abc],元字元^在字串尾不起作用
[abc^],就是普通字元。
-元字元在字符集首表示匹配補集,[^abc]就是匹配除了a,b,c以外的字元。
-匹配行首,位於字串首。制定規則res = r'^abc',為匹配行首是abc;規則s = r'^[abc]',為匹配行首是a,b,c.
-匹配行尾,位於字串尾。定規則res = r'abc$',為匹配行尾是abc;規則s = r'[abc]$',為匹配行尾是a,b,c.
-反斜槓後可以加不同的字元表示不同的特殊意義
-也可以取消元字元:\\ 或\[
\d 匹配任何十進位制數,相當於[0-9];
\d 匹配任何非十進位制數,相當於[^0-9];
\s 匹配任何空白字元:相當於[\t\n\r\f\v];
\s 匹配任何非空白字元:相當於[^\t\n\r\f\v];
\d 匹配任何字母數字字元,相當於[a-za-z0-9_];#注:難怪很多密碼或郵箱只允許下劃線和字母數字。
\d 匹配任何非字母數字字元,相當於[^a-za-z0-9_]。
舉個栗子:
import re
r = r'010-\d\d\d\d\d\d\d\d'#**號碼
re.findall(r, '010-87654321')
結果[010-87654321]#匹配**號碼格式,輸出
-正規表示式第一功能是能夠匹配不定長的字符集,另乙個功能就是可以指定正規表示式的一部分的重複次數。
-指定前乙個字元可以被匹配0次或更多次,而不是只有一次。匹配引擎會試著重複盡可能多的次數。
-表示匹配一次或更多次。
-*和+之間的不同在於:*下,字元可以不出現(匹配0次),而+則要求至少出現一次。
-匹配一次或零次,可以認為用於標記某事物是可選的(0 or 1)。
再乙個栗子:
>>>r = r'^010-?\d'#**號碼的規則,有人不會打-,所以用-?表示-可選
>>>re.findall(r, '010-12345678')
['010-12345678']
-其中m和n是十進位制整數。意思是至少有m個重複,至多到n次重複。三隻栗子:
>>>r = r'a'
>>>re.findall(r, 'aaaaa')
['aaa', 'aa']#aaaaa是5個a,而不是乙個組合
-忽略m,預設下邊界為0 ;忽略n,會使上邊界無窮大。
-等於*,等於+,而則等於?。所以在應用中,優先選擇*,+,?.
正規表示式 1 初識正規表示式
簡單地說,正規表示式就是一套處理字串的規則和方法,以行為單位對字串進行處理,通過特殊的符號的輔助,我們可以快速的過濾,替換某些特定的字串。運維工作中,會有大量訪問日誌,錯誤日誌,大資料。如何能夠快速的過濾出我們需要的內容,這就需要正規表示式。awk,sed,grep egrep 三劍客要想能工作的更...
正規表示式初識
正規表示式 為轉義如 表示.郵箱匹配 grep e 0 9a za z 0 9a za z a za z a.txt 查詢郵箱 a z 所有小寫字母 a z 所有大寫字母 0 9 所有數字 0 9 所有非數字 表達取反 0 9 a z 0個或多個小寫字母 a z 至少出現一次小寫字母 a z 出現0...
初識正規表示式
正規表示式 1.概念 一種字串匹配規則 1.1 判斷 input進來的 是不是qq號 是不是手機號 身份證號 1.2 有乙個檔案,要求把手機號 qq號 取出來 2.能做什麼 2.1 可以制定乙個規則 來確認某乙個字串是否符合規則的內容 從打斷的字串中找到符合規則的內容 2.2 程式領域 1,登入程式...