溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python如何使用RegEx模塊處理正則表達(dá)式?

發(fā)布時(shí)間:2020-05-26 11:14:10 來(lái)源:億速云 閱讀:278 作者:Leah 欄目:編程語(yǔ)言

  Python如何使用RegEx模塊處理正則表達(dá)式?針對(duì)這個(gè)問(wèn)題,今天小編總結(jié)這篇有關(guān)RegEx模塊的文章,希望能幫助更多想解決這個(gè)問(wèn)題的朋友找到更加簡(jiǎn)單易行的辦法。

  RegEx或正則表達(dá)式是形成搜索模式的字符序列

  RegEx可用于檢查字符串是否包含指定的搜索模式

  RegEx模塊

  python提供名為 re 的內(nèi)置包,可用于處理正則表達(dá)式。

  導(dǎo)入re模塊

  import re

  導(dǎo)入RegEx模塊后,就可以使用正則表達(dá)式了:

  實(shí)例

  檢索字符串以查看它是否以“China”開(kāi)頭并以“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)

  

Python如何使用RegEx模塊處理正則表達(dá)式?


  這個(gè)列表以被找到的順序包含匹配項(xiàng)。

  如果未找到匹配項(xiàng),返回空列表:

  import re

  str = "I want to go to school"

  x = re.findall("KK", str)

  print(x)

  search()

  如果字符串中的任意位置存在匹配,則返回Match對(duì)象

  如果有多個(gè)匹配,則返回首個(gè)匹配項(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())

  

Python如何使用RegEx模塊處理正則表達(dá)式?


  如果未找到匹配,返回值None:

  import re

  str = "China is a great country"

  x = re.search("English", str)

  print(x)

  finditer()

  和findall類(lèi)似,在字符串中找到正則表達(dá)式所匹配的所有子串,并把它們作為一個(gè)迭代器返回

  import re

  str = re.finditer(r"\d+","I18 want15 to13 go15 to school")#\d返回的是數(shù)字

  for match in str:

  print(match.group())

  split()

  返回一個(gè)列表,其中字符串在每次匹配時(shí)被拆分

  實(shí)例:在每個(gè)空白字符處進(jìn)行拆分

  import re

  str = "I want to go to school"

  x = re.split("\s", str)

  print(x)

  

Python如何使用RegEx模塊處理正則表達(dá)式?


  可以通過(guò)指定maxsplit參數(shù)來(lái)控制出現(xiàn)次數(shù):

  實(shí)例

  僅在首次出現(xiàn)時(shí)拆分字符串:

  import re

  str = "I want to go to school"

  x = re.split("\s", str, 1)

  print(x)

  

Python如何使用RegEx模塊處理正則表達(dá)式?


  sub()

  re.sub(pattern, repl, string, count=0, flags=0)

  用字符串替換一個(gè)或多個(gè)匹配項(xiàng),就是把匹配替換為所選文本

  實(shí)例

  用數(shù)字8替換每個(gè)空白字符

  import re

  str = "I want to go to school"

  x = re.sub("\s", "8", str)

  print(x)

  

Python如何使用RegEx模塊處理正則表達(dá)式?


  通過(guò)count 參數(shù)來(lái)控制替換次數(shù)

  import re

  str = "I want to go to school"

  x = re.sub("\s", "8", str, 2)#只將兩個(gè)空白符換為8

  print(x)

  Match對(duì)象

  Match 對(duì)象是包含有關(guān)搜索和結(jié)果信息的對(duì)象

  注釋?zhuān)喝绻麤](méi)有匹配,返回值None,而不是Match對(duì)象

  import re

  str = "I want to go to school"

  x = re.search("a", str)

  print(x)#打印一個(gè)對(duì)象

  Match()對(duì)象提供了用于取回有關(guān)搜索及結(jié)果信息的屬性和方法:

  span()返回的元組包含了匹配的開(kāi)始和結(jié)束位置

  string()返回傳入函數(shù)的字符串

  group()返回匹配的字符串部分,group也包含三個(gè)部分

  start()返回匹配開(kāi)始的位置

  end()返回匹配結(jié)束的位置

  span()返回一個(gè)元組包含匹配(開(kāi)始,結(jié)束)的位置

  實(shí)例

  打印首個(gè)匹配出現(xiàn)的位置(start, end)

  正則表達(dá)式查找以大寫(xiě)“W”開(kāi)頭的任何單詞:

  import re

  str = "I Want to go to school"

  x = re.search(r"\bW\w+", str)#\b是返回指定字符位于單詞的開(kāi)頭或末尾的匹配項(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á)式查找以寫(xiě)“W”開(kāi)頭的任何單詞

  import re

  str = "I Want to go to school, the World is so quite"

  x = re.search(r"\bW\w+", str)

  print(x.group)

  

Python如何使用RegEx模塊處理正則表達(dá)式?


  如果沒(méi)有匹配項(xiàng),則返回值None,而不是Match對(duì)象

  compile函數(shù)

  compile函數(shù)用于編譯正則表達(dá)式,生成一個(gè)正則表達(dá)式(pattern)對(duì)象,供match()和search()這兩個(gè)函數(shù)使用。

  import re

  pattern = re.compile(r'\d+')

  str = pattern.match("24Kobe Jodan23")#match查找頭部

  print(str)

  str1 = pattern.search("Jodan23")

  print(str1)

  

Python如何使用RegEx模塊處理正則表達(dá)式?


  re.match 與 re.search的區(qū)別

  re.match只匹配字符串的開(kāi)始,如果字符串開(kāi)始不符合正則表達(dá)式,則匹配失敗,函數(shù)返回None;而re.search匹配整個(gè)字符串,知道找到一個(gè)匹配。

  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!!")

  

Python如何使用RegEx模塊處理正則表達(dá)式?


  正則表達(dá)式模式及實(shí)例

  模式字符串使用特殊的語(yǔ)法來(lái)表示一個(gè)正則表達(dá)式:

  反斜杠+字母/數(shù)字擁有不同含義

  因?yàn)檎齽t表達(dá)式通常都包含反斜杠,所以最好使用原始字符串來(lái)表示它們,模式元素(如r’\b’ 等價(jià)于\ \b)匹配相應(yīng)的特殊字符

  元字符

  特殊序列

  是指在\后跟下表中的某個(gè)字符,擁有特殊含義

  集合(set)

  集合是一對(duì)方括號(hào)[]內(nèi)的一組字符,具有特殊含義

  以上就是RegEx模塊處理正則表達(dá)式的詳細(xì)內(nèi)容,代碼示例簡(jiǎn)單明了,如果在日常工作遇到此問(wèn)題。通過(guò)這篇文章,希望你能有所收獲,更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI