正規表示式包 re
re.search(pattern, string),其中pattern是字串形式提供的正規表示式,string是需要匹配的字串;
使用^和$測試string有pattern完整匹配
>>> re.search('[0123456799]',"2") != none
true
#只要有乙個匹配成功,就會返回true
>>> re.search('[0123456799]',"12") != none
true
>>> re.search('[0123456799]',"a2") != none
true
>>> re.search('[0123456799]',"2") != none
true
>>> re.search('[0123456799]',"a") != none
false
>>> re.search('^[0123456799]$',"1a") != none
false
範圍表示法
[x-y]表示x到y整個範圍內的字元
>>> re.search("^[0-9]$","2") !=none
true
>>> re.search("^[9-0]$","2") !=none
上面的字元會進行報錯,因為9比0 的ascii的值要大
>>> re.search("^[0-9a-fa-f]$","2") !=none
true
>>> re.search("^[0-9a-fa-f]$","c") !=none
true
>>> re.search("^[0-9a-fa-f]$","i") !=none
false
>>> re.search("^[0-9a-fa-f]$","i") !=none
false
也可以通過\xhex表示乙個字元,\x表示字首,hex表示字元對應的碼值(十六進製制數值),如所有的ascii字元對應的字元組就是[\x00-\x7f]
>>> re.search("^[\x00-\x7f]$","c") !=none
true
>>> re.search("^[\x00-\x7f]$","1") !=none
true
元字元與轉義
元字元包括[、 ]、$、^以及表示範圍的-
對於-來說,出現的位置不同,含義不同
>>> re.search("^[-09]$","-") !=none 表示匹配-,0,9
true
>>> re.search("^[0-9]$","-") !=none 表示匹配0到9的數值
false
>>> re.search("^[0\-9]$","3") !=none
false
>>> re.search("^[0\-9]$","-") !=none
true
排除型字元組
[^0-2][0-2] 表示匹配由兩個字元組成的字串,第乙個為0-2以外的所有字元(也包括標點符號),第二個為0-2之前的字元,
>>> re.search(r"^[^0-2][0-2]$","q2") !=none
true
>>> re.search(r"^[^0-2][0-2]$",",2") !=none
true
字元組簡記法
\d等價於[0-9],\d等價於[0-9]之外的所有字元,d表示單詞字元digit
\w等價於[0-9a-za-z],w表示「單詞字元(word)」
\s等價於[ \t\r\n\v\f](第乙個字元是空格),s表示單詞字元space,空白字元
>>> re.search(r"^\d$","8") != none
true
>>> re.search(r"^\d$","9") != none
true
>>> re.search(r"^\w$","9") != none
true
>>> re.search(r"^\w$",",") != none
false
>>> re.search(r"^\w$","a") != none
true
>>> re.search(r"^\s$"," ") != none
true
>>> re.search(r"^[\da-za-z]$","8") != none
true
>>> re.search(r"^[\da-za-z]$","a") != none
true
>>> re.search(r"^[\da-za-z]$","aad") != none
false
第一章 正規表示式
正規表示式是高階的文字模式匹配 抽取 或文字形式的搜尋和替換功能提供了基礎。正規表示式 簡稱regex 是由一些字元或特殊符號組成的字串,他們描述了模式的重複或表述多個字元,於是正規表示式能夠按照某一模式匹配一系列有相似特徵的字串。python使用re模組來支援正規表示式。符號描述 匹配0次或者多次...
python 核心程式設計》第一章 正規表示式
import rem re.match foo bar foo print m.group footype m.group strm.group 返回匹配的字串 pattern foo bar m re.match pattern,foobarfooooooook print m.group foo...
第一章 文字 re 正規表示式 多重匹配
1.3.3 多重匹配 到目前為止,示例模式都只是使用search 來查詢字面量文字字串的單個例項。findall 函式會返回輸入中與模式匹配而且不重疊的所有子串。import re text abbaaabbbbaaaaa pattern ab for match in re.findall pat...