Python如何使用RegEx模塊處理正則表達(dá)式?針對這個問題,今天小編總結(jié)這篇有關(guān)RegEx模塊的文章,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。
為芷江等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及芷江網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、做網(wǎng)站、芷江網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
RegEx或正則表達(dá)式是形成搜索模式的字符序列
RegEx可用于檢查字符串是否包含指定的搜索模式
RegEx模塊
python提供名為 re 的內(nèi)置包,可用于處理正則表達(dá)式。
導(dǎo)入re模塊
import re
導(dǎo)入RegEx模塊后,就可以使用正則表達(dá)式了:
實(shí)例
檢索字符串以查看它是否以“China”開頭并以“county”結(jié)尾:
import re
txt = "China is a great country"
x = re.search("^China.*country$", txt)
if(x):
print("YES! We have a match")
else:
print("No match");
RegEx函數(shù)
re模塊提供了一組函數(shù),允許我們檢索字符串以進(jìn)行匹配:
findall()
返回包含所有匹配項(xiàng)的列表
實(shí)例:
打印所有匹配的列表:
import re
str = "China is a great country"
x = re.findall("a", str)
print(x)
這個列表以被找到的順序包含匹配項(xiàng)。
如果未找到匹配項(xiàng),返回空列表:
import re
str = "I want to go to school"
x = re.findall("KK", str)
print(x)
search()
如果字符串中的任意位置存在匹配,則返回Match對象
如果有多個匹配,則返回首個匹配項(xiàng)
search()函數(shù)搜索
import re
str = "I want to go to school"
x = re.search("\s", str)#返回字符串包含空白字符的匹配項(xiàng)
print("The first white-space character is located in position:", x.start())
如果未找到匹配,返回值None:
import re
str = "China is a great country"
x = re.search("English", str)
print(x)
finditer()
和findall類似,在字符串中找到正則表達(dá)式所匹配的所有子串,并把它們作為一個迭代器返回
import re
str = re.finditer(r"\d+","I18 want15 to13 go15 to school")#\d返回的是數(shù)字
for match in str:
print(match.group())
split()
返回一個列表,其中字符串在每次匹配時被拆分
實(shí)例:在每個空白字符處進(jìn)行拆分
import re
str = "I want to go to school"
x = re.split("\s", str)
print(x)
可以通過指定maxsplit參數(shù)來控制出現(xiàn)次數(shù):
實(shí)例
僅在首次出現(xiàn)時拆分字符串:
import re
str = "I want to go to school"
x = re.split("\s", str, 1)
print(x)
sub()
re.sub(pattern, repl, string, count=0, flags=0)
用字符串替換一個或多個匹配項(xiàng),就是把匹配替換為所選文本
實(shí)例
用數(shù)字8替換每個空白字符
import re
str = "I want to go to school"
x = re.sub("\s", "8", str)
print(x)
通過count 參數(shù)來控制替換次數(shù)
import re
str = "I want to go to school"
x = re.sub("\s", "8", str, 2)#只將兩個空白符換為8
print(x)
Match對象
Match 對象是包含有關(guān)搜索和結(jié)果信息的對象
注釋:如果沒有匹配,返回值None,而不是Match對象
import re
str = "I want to go to school"
x = re.search("a", str)
print(x)#打印一個對象
Match()對象提供了用于取回有關(guān)搜索及結(jié)果信息的屬性和方法:
span()返回的元組包含了匹配的開始和結(jié)束位置
string()返回傳入函數(shù)的字符串
group()返回匹配的字符串部分,group也包含三個部分
start()返回匹配開始的位置
end()返回匹配結(jié)束的位置
span()返回一個元組包含匹配(開始,結(jié)束)的位置
實(shí)例
打印首個匹配出現(xiàn)的位置(start, end)
正則表達(dá)式查找以大寫“W”開頭的任何單詞:
import re
str = "I Want to go to school"
x = re.search(r"\bW\w+", str)#\b是返回指定字符位于單詞的開頭或末尾的匹配項(xiàng)
print(x.span())鄭州婦科醫(yī)院哪家好 https://yiyuan.120ask.com/zzfck/
實(shí)例
打印傳入函數(shù)的字符串:
import re
str = ""I Want to go to school"
x = re.search(r"\bW\w+", str)
print(x.string)
實(shí)例
打印匹配的字符串部分
正則表達(dá)式查找以寫“W”開頭的任何單詞
import re
str = "I Want to go to school, the World is so quite"
x = re.search(r"\bW\w+", str)
print(x.group)
如果沒有匹配項(xiàng),則返回值None,而不是Match對象
compile函數(shù)
compile函數(shù)用于編譯正則表達(dá)式,生成一個正則表達(dá)式(pattern)對象,供match()和search()這兩個函數(shù)使用。
import re
pattern = re.compile(r'\d+')
str = pattern.match("24Kobe Jodan23")#match查找頭部
print(str)
str1 = pattern.search("Jodan23")
print(str1)
re.match 與 re.search的區(qū)別
re.match只匹配字符串的開始,如果字符串開始不符合正則表達(dá)式,則匹配失敗,函數(shù)返回None;而re.search匹配整個字符串,知道找到一個匹配。
import re
str = "I want to go to school"
matchobj = re.match(r"to", str)
if matchobj:
print ("match --> matchobj.group() : ", matchobj.group())
else:
print ("No match!!")
matchobj = re.search(r"to", str)
if matchobj:
print ("search--> matchobj.group() : ", matchobj.group())
else:
print ("No match!!")
正則表達(dá)式模式及實(shí)例
模式字符串使用特殊的語法來表示一個正則表達(dá)式:
反斜杠+字母/數(shù)字擁有不同含義
因?yàn)檎齽t表達(dá)式通常都包含反斜杠,所以最好使用原始字符串來表示它們,模式元素(如r’\b’ 等價于\ \b)匹配相應(yīng)的特殊字符
元字符
特殊序列
是指在\后跟下表中的某個字符,擁有特殊含義
集合(set)
集合是一對方括號[]內(nèi)的一組字符,具有特殊含義
以上就是RegEx模塊處理正則表達(dá)式的詳細(xì)內(nèi)容,代碼示例簡單明了,如果在日常工作遇到此問題。通過這篇文章,希望你能有所收獲,更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章名稱:Python如何使用RegEx模塊處理正則表達(dá)式?
URL地址:http://sd-ha.com/article44/jggoee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、App設(shè)計、品牌網(wǎng)站設(shè)計、網(wǎng)站內(nèi)鏈、虛擬主機(jī)、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)