python中的正則表達式

python中的re模塊提供對正則表達式的支持python

什麼是正則表達式?正則表達式

正則表達式是可匹配的文本片斷,最簡單的正則表達式能夠是普通的字符串,與它本身匹配。
函數

例如:表達式'python'與字符串'python'匹配。對象

通配符字符串

運用特殊字符串與多個字符串匹配。例如句點,'.ython'與字符串'python'和'jython'都匹配,還能夠是'qython'、'+ython'、' ython',但不與'udython'、'ython'等字符串匹配,句點只能與一個字符匹配,不能與零或兩個字符匹配。string

句點與除換行符外的任何字符都匹配,也被稱爲通配符it

對特殊字符進行轉義perl

'python.org',能與‘python.org’匹配,但也與'pythonaorg'匹配,這是須要在句點前加斜槓進行轉義,re模塊中要求用\\雙斜槓,'python\\.org',此時只與'python.org'匹配。也能夠用原始字符串,r'python\.org',此時表示是在re模塊中使用的轉義。字符集

字符集co

當須要更精細的控制時,能夠用方括號將一個子串括起來,建立字符集。例如:'[pj]ython'與'python'和'jython'都匹配,但與其餘字符串不匹配。'[a-z]'與a~z的任何字母都匹配,'[a-zA-Z0-9]'與大小寫字母和數字匹配。字符集只能匹配一個字符

^脫字符,能夠制定排除字符集。'[^abc]'與除a,b,c外的任何其餘字符都匹配。

二選一和子模式

特殊字符:管道字符(|),'python|perl',存在相同的部分可寫成'p(ython|erl)',單個字符也可稱爲子模式。

可選模式和重複模式

在子模式後加?,可將其指定爲可選,便可包含可不包含。

r'(http://)?(www\.)?python\.org'與哪些字符串匹配?

答案:

'http://www.python.org'
'http://python.org'
'www.python.org'
'python.org'

(some)*,some可重複0、1或屢次

(some)+,some可重複1或屢次

(some){m,n},some可重複m~n次

re模塊中幾個使用正則表達式的函數:

compile(pattern[,flags])    根據包含正則表達式的字符串建立模式對象

search(pattern,string[,flags])  在字符串中查找模式

match(pattern,string[,flags])  在字符串開頭匹配模式

split(pattern,string[,flags])  根據模式來分割字符串

findall(pattern,string)  返回一個列表,其中包含字符串中全部與模式匹配的子串

sub(pat,repl,string[,count=0])  將字符串中與模式pat匹配的子串都替換爲repl

escape(string)  對字符串中全部的正則表達式特殊字符都進行轉義 

相關文章
相關標籤/搜索