Python之正規表示式

2021-07-06 11:11:49 字數 1350 閱讀 6741

正規表示式正規表示式主要用來匹配字串,例如:判斷乙個字串是否是乙個合法的**。思想是用描述性的語言給字串乙個規則。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裡數量詞預設是貪婪的 在少數語言裡也可能是...