正規表示式正規表示式主要用來匹配字串,例如:判斷乙個字串是否是乙個合法的**。思想是用描述性的語言給字串乙個規則。re模組中的match函式提供了這種功能,若匹配成功則返回匹配物件,否則返回none。
(一)語法:
\d 表示匹配數字; \w 表示匹配字母或數字; .可以匹配任意字元;\s可以匹配乙個空格或者tab;特殊字元如-要加\-轉義;
eg:』\d\d\d』 可以匹配』007』
『\w\d\d』可以匹配』a78』
』00\w』可以匹配』00a』
『ab.』可以匹配』abc』/『ab0』/『ab*』等等
匹配變長的字串時,*:表示任意長字元;+:表示至少乙個字元;?:表示0個或1個;表示n個字元;表示n-m個字元
eg:』\d\s+\d』 表示3個數字,至少乙個空格,3-8個數字 『010 12345』
『\d\-\d』
3.表示範圍
eg:[0-9a-za-z\_]表示字母數字下劃線
[0-9a-za-z\_]+表示至少乙個字母數字或下劃線
[a-za-z\_][0-9a-za-z]表示字母或下劃線開頭,1個字元加上19個字元的長度範圍
a|b可以匹配a或者b eg:[p|p]ython可以匹配python或python
^表示行的開頭 eg:^\d表示以數字開頭
$表示行的結束 eg:$\d表示以數字結束
(二)re模組
re模組包含所有正規表示式中的功能,注意\的轉義功能 eg:>s=『a\\b』#』a\b』;使用r字首可以遮蔽轉義:s=r』a\b』#』a\b』
判斷正規表示式匹配:
>import re>re.match(r』^\d\-\d$』,』010-276122』)>#返回match物件;若匹配失敗則返回none(啥都木有)
>test=『whatever』 >if re.match(r』 『,test):print(『ok』) else:print(「fail」)
切分字串:
>』a b c'.split(『 『)#[『a』,』b』,』 『,』c』]
>re.split(r』[\s\,\;]+』,』a,b;;c d』) #[『a』,』b』,』c』,』d』]
分組:()
eg:^(\d)-(\d)$定義了兩個組
>a=re.match(r』^(\d)-(\d)$』,』010-276122』) #返回match物件
>a.group(0) #』010-276122』 group(0)返回原始字串
>a.group(1) #』010』 group(1)返回第乙個組
>a.group(2) #』276122』 group(2)返回第二個組
Python之正規表示式
正規表示式元字元如下 匹配除換行符以外的所以字元 規定匹配模式必須出現在目標字串的開頭,例如 hell hello hellboy 規定匹配模式必須出現在目標字串的結尾,例如 ar car bar 其前乙個字元必須在目標物件中連續出現零次或多次 其前乙個字元必須在目標物件中連續出現一次或多次 其前乙...
Python之正規表示式
匯入re模組 檢索和替換 re.sub re.sub pattern,repl,string,count 0,flags 0 pattern 正則中的模式字串 repl 替換的字串,也可為乙個函式 string 要被查詢替換的原始字串 count 模式匹配後替換的最大次數,預設 0 表示替換所有的匹...
Python之正規表示式
python之正規表示式 1.正規表示式的大致匹配過程是 依次拿出表示式和文字中的字元比較,如果每乙個字元都能匹配,則匹配成功 一旦有匹配不成功的字元則匹配失敗,具體如下圖 1.1 貪婪模式與非貪婪模式 正規表示式通常用於在文字中查詢匹配的字串。python裡數量詞預設是貪婪的 在少數語言裡也可能是...