欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          歸納整理python正則表達(dá)式解析

          本篇文章給大家?guī)砹岁P(guān)于python的相關(guān)知識(shí),其中主要介紹了Python正則表達(dá)式的相關(guān)問題,總結(jié)了包括正則表達(dá)式函數(shù)、元字符、特殊序列、集合套裝、匹配對(duì)象等等,希望對(duì)大家有幫助。

          歸納整理python正則表達(dá)式解析

          推薦學(xué)習(xí):python教程

          正則表達(dá)式的作用是什么?我們網(wǎng)頁抓取到的內(nèi)容很多,我們不可能全部都獲取,只需要其中的一部分內(nèi)容,因此我們需要使用正則來匹配我們想要的內(nèi)容。

          正則表達(dá)式模塊

          Python 有一個(gè)名為 的內(nèi)置包re,可用于處理正則表達(dá)式。導(dǎo)入re模塊:

          import re

          Python中的正則表達(dá)式

          導(dǎo)入re模塊后,您可以開始使用正則表達(dá)式。
          例如:搜索字符串以查看它是否以“The”開頭并以“Spain”結(jié)尾:

          import re  txt = "The rain in Spain"x = re.search("^The.*Spain$", txt)if x:   print("匹配成功!")else:   print("匹配失敗")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析
          當(dāng)然,你現(xiàn)在看不懂這個(gè)例子,既然手把手教學(xué),并不會(huì)教大家一步登天。

          正則表達(dá)式函數(shù)

          findall() 函數(shù)

          該findall()函數(shù)返回一個(gè)包含所有匹配項(xiàng)的列表。
          例如:打印所有匹配項(xiàng)的列表

          import re  txt = "川川菜鳥啊菜鳥啊"x = re.findall("菜鳥", txt)print(x)

          運(yùn)行返回:
          歸納整理python正則表達(dá)式解析
          該列表按找到的順序包含匹配項(xiàng)。如果未找到匹配項(xiàng),則返回一個(gè)空列表:

          import re  txt = "菜鳥并不菜"x = re.findall("川川", txt)print(x)if (x):   print("匹配成功了喲")else:   print("找不到這個(gè)呀!")

          運(yùn)行返回:
          歸納整理python正則表達(dá)式解析

          search() 函數(shù)

          該search()函數(shù)在字符串中搜索匹配項(xiàng),如果有匹配項(xiàng),則返回一個(gè)Match 對(duì)象。如果有多個(gè)匹配項(xiàng),則只返回匹配項(xiàng)的第一次出現(xiàn)。
          例如:搜索字符串中的第一個(gè)空白字符:

          import re  txt = "菜鳥 呢"x = re.search("s", txt)print("第一個(gè)空格字符位于位置:", x.start())

          運(yùn)行結(jié)果:
          歸納整理python正則表達(dá)式解析
          如果未找到匹配項(xiàng),None則返回該值:

          import re  txt = "天上飛的是菜鳥"x = re.search("川川", txt)print(x)

          返回:
          歸納整理python正則表達(dá)式解析

          split() 函數(shù)

          該split()函數(shù)返回一個(gè)列表,其中的字符串在每次匹配時(shí)被拆分。
          例如:在每個(gè)空白字符處拆分

          import re  txt = "菜鳥 學(xué) python"x = re.split("s", txt)print(x)

          運(yùn)行返回:
          歸納整理python正則表達(dá)式解析
          您可以通過指定maxsplit 參數(shù)來控制出現(xiàn)次數(shù)
          例如:僅在第一次出現(xiàn)時(shí)拆分字符串:

          import re#Split the string at the first white-space character:txt = "飛起來 菜鳥 們"x = re.split("s", txt, 1)print(x)

          返回:
          歸納整理python正則表達(dá)式解析

          sub() 函數(shù)

          該sub()函數(shù)用您選擇的文本替換匹配項(xiàng)。
          例如:用只替換就

          import re  txt = "學(xué)python就找川川菜鳥"x = re.sub("就", "只", txt)print(x)

          運(yùn)行:
          歸納整理python正則表達(dá)式解析
          您可以通過指定count 參數(shù)來控制替換次數(shù) :
          例如替換前 2 次出現(xiàn):

          import re  txt = "學(xué)python就就就川川菜鳥"x = re.sub("就", "只", txt,2)print(x)

          返回:
          歸納整理python正則表達(dá)式解析

          元字符

          列表符號(hào)

          [] 用于一組字符
          例如:#按字母順序查找“a”和“m”之間的所有小寫字符

          import re  txt = "apple chuanchuan "#按字母順序查找“a”和“m”之間的所有小寫字符x = re.findall("[a-m]", txt)print(x)

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          轉(zhuǎn)義符

          ** 表示特殊序列(也可用于轉(zhuǎn)義特殊字符)
          例如匹配所有數(shù)字:

          import re  txt = "我今年20歲了"#查找所有數(shù)字字符x = re.findall("d", txt)print(x)

          運(yùn)行返回:
          歸納整理python正則表達(dá)式解析

          任意符號(hào)

          . 可以任何字符(換行符除外)。
          例如:搜索以“he”開頭、后跟兩個(gè)(任意)字符和一個(gè)“o”的序列

          import re  txt = "hello world"#搜索以“he”開頭、后跟兩個(gè)(任意)字符和一個(gè)“o”的序列x = re.findall("he..o", txt)print(x)

          運(yùn)行返回:
          歸納整理python正則表達(dá)式解析

          開始符

          ^符號(hào)用于匹配開始。

          import re  txt = "川川菜鳥 飛起來了"x = re.findall("^川", txt)if x:   print("哇,我匹配到了")else:   print("哎呀,匹配不了啊")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          結(jié)束符

          $ 符號(hào)用于匹配結(jié)尾,例如:匹配字符串是否以“world”結(jié)尾

          import re  txt = "hello world"#匹配字符串是否以“world”結(jié)尾x = re.findall("world$", txt)if x:   print("匹配成功了耶")else:   print("匹配不到哦")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          星號(hào)符

          • 星號(hào)符用于匹配零次或者多次出現(xiàn)。
          import re  txt = "天上飛的是菜鳥,學(xué)python找川川菜鳥!"#檢查字符串是否包含“ai”后跟 0 個(gè)或多個(gè)“x”字符:x = re.findall("菜鳥*", txt)print(x)if x:   print("匹配到了!")else:   print("氣死了,匹配不到啊")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          加號(hào)符

          + 用于匹配一次或者多次出現(xiàn)
          例如:檢查字符串是否包含“菜鳥”后跟 1 個(gè)或多個(gè)“菜鳥”字符:

          import re  txt = "飛起來了,菜鳥們!"#檢查字符串是否包含“菜鳥”后跟 1 個(gè)或多個(gè)“菜鳥”字符:x = re.findall("菜鳥+", txt)print(x)if x:   print("匹配到了!")else:   print("煩死了,匹配不到")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          集合符號(hào)

          {} 恰好指定的出現(xiàn)次數(shù)
          例如:檢查字符串是否包含“川”兩個(gè)

          import re  txt = "川川菜鳥并不菜!"#檢查字符串是否包含“川”兩個(gè)x = re.findall("川{2}", txt)print(x)if x:   print("匹配到了兩次的川")else:   print("匹配不到啊,帥哥")

          返回:
          歸納整理python正則表達(dá)式解析

          或符

          | 匹配兩者任一
          例如:匹配字符串菜鳥或者是我了

          import re  txt = "菜鳥們學(xué)會(huì)python了嗎?串串也是菜鳥啊!"x = re.findall("菜鳥|是我了", txt)print(x)if x:   print("匹配到了哦!")else:   print("匹配失敗")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          特殊序列

          指定字符

          A : 如果指定的字符位于字符串的開頭,則返回匹配項(xiàng)。
          例如:匹配以菜字符開頭的字符

          import re  txt = "菜鳥在這里"x = re.findall("A菜", txt)print(x)if x:   print("是的匹配到了")else:   print("匹配不到")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          指定開頭結(jié)尾

          b 返回指定字符位于單詞開頭或結(jié)尾的匹配項(xiàng) (開頭的“r”確保字符串被視為原始字符串)。
          例如:匹配愛開頭

          import re  txt = "愛你,川川"x = re.findall(r"b愛", txt)print(x)if x:   print("匹配到了")else:   print("匹配不到")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析
          又例如:匹配川結(jié)尾

          import re  txt = "愛你,川川"x = re.findall(r"川b", txt)print(x)if x:   print("匹配到了")else:   print("匹配不到")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          匹配中間字符

          B 返回存在指定字符但不在單詞開頭(或結(jié)尾)的匹配項(xiàng) (開頭的“r”確保字符串被視為“原始字符串”)
          比如我匹配菜鳥:

          import re  txt = "我是菜鳥我是菜鳥啊"#檢查是否存在“ain”,但不是在單詞的開頭:x = re.findall(r"菜鳥", txt)print(x)if x:   print("匹配到了嘛!!")else:   print("匹配不到哇!")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析
          但是你匹配結(jié)尾就會(huì)返回空,比如我匹配鳥:

          import re  txt = "川川菜鳥"#檢查是否存在“鳥”,但不是在單詞的末尾:x = re.findall(r"鳥B", txt)print(x)if x:   print("匹配到了哦")else:   print("找不到")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          匹配數(shù)字

          d 返回字符串包含數(shù)字(0-9 之間的數(shù)字)的匹配項(xiàng)。
          例如:

          import re  txt = "我今年20歲了啊"#檢查字符串是否包含任何位數(shù)(0-9的數(shù)字)x = re.findall("d", txt)print(x)if x:   print("哇哇哇,匹配到數(shù)字了")else:   print("找不到哦")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          匹配非數(shù)字

          D 返回字符串不包含數(shù)字的匹配項(xiàng)
          例如:

          import re  txt = "我今年20歲"#匹配任何非數(shù)字符號(hào)x = re.findall("D", txt)print(x)if x:   print("匹配到了,開心!")else:   print("匹配不到,生氣")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          空格匹配

          s 返回一個(gè)匹配字符串包含空白空間字符的匹配項(xiàng)。
          例如:

          import re  txt = "我 是 川 川 菜 鳥"#匹配任何空格字符x = re.findall("s", txt)print(x)if x:   print("匹配到了")else:   print("匹配不到啊")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          匹配非空格

          S 返回字符串不包含空格字符的匹配項(xiàng)

          import re  txt = "菜鳥是  我  了"#匹配任意非空字符x = re.findall("S", txt)print(x)if x:   print("匹配到了!")else:   print("匹配不到啊")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          匹配任意數(shù)字和字母

          返回一個(gè)匹配,其中字符串包含任何單詞字符(從 a 到 Z 的字符,從 0 到 9 的數(shù)字,以及下劃線 _ 字符)
          例如:

          import re  txt = "菜鳥啊 是串串呀"#在每個(gè)單詞字符(從a到z的字符,0-9的數(shù)字)返回匹配項(xiàng),以及下劃線_字符):x = re.findall("w", txt)print(x)if x:   print("匹配到了啊")else:   print("匹配不到哇")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          匹配任意非數(shù)字和字母

          返回字符串不包含任何單詞字符的匹配項(xiàng),在每個(gè)非單詞字符中返回匹配(不在A和Z之間的字符?!?!”,“?”空白位等)
          例如:

          import re  txt = "菜鳥 是 我嘛?我不信!!"#在每個(gè)非單詞字符中返回匹配(不在A和Z之間的字符。“!”,“?”空白位等):x = re.findall("W", txt)print(x)if x:   print("匹配到了!")else:   print("匹配不到啊")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          匹配結(jié)尾

          Z 如果指定的字符位于字符串的末尾,則返回匹配項(xiàng)。
          例如:

          import re  txt = "川川是菜鳥啊"x = re.findall("啊Z", txt)print(x)if x:   print("匹配到了哦!")else:   print("匹配不到")

          集合套裝

          指定符范圍匹配

          例如集合:[arn]

          import re  txt = "The rain in Spain"x = re.findall("[arn]", txt)print(x)if x:   print("匹配到了!")else:   print("匹配不到")

          匹配任意范圍內(nèi)小寫字母

          返回任何小寫字符的匹配項(xiàng),按字母順序在 a 和 n 之間。
          例如:

          import re  txt = "hello wo r l d"x = re.findall("[a-n]", txt)print(x)if x:   print("匹配到了!")else:   print("匹配不到")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析
          同樣的道理,依次其它情況如下:

          [^arn] 返回除 a、r 和 n 之外的任何字符的匹配項(xiàng)

          [0123] 返回存在任何指定數(shù)字(0、1、2 或 3)的匹配項(xiàng)

          [0-9] 返回 0 到 9 之間任意數(shù)字的匹配項(xiàng)

          [0-5][0-9] 返回 00 到 59 中任意兩位數(shù)的匹配項(xiàng)

          [a-zA-Z] 按字母順序返回 a 和 z 之間的任何字符的匹配,小寫或大寫

          [+] 在集合中,+, *, ., |, (), $,{} 沒有特殊含義,所以 [+] 的意思是:返回字符串中任意 + 字符的匹配項(xiàng)。這個(gè)我i舉個(gè)例子:

          import re  txt = "5+6=11"#檢查字符串是否有任何 + 字符:x = re.findall("[+]", txt)print(x)if x:   print("匹配到了")else:   print("匹配不到")

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          匹配對(duì)象

          匹配對(duì)象是包含有關(guān)搜索和結(jié)果的信息的對(duì)象。注意:如果沒有匹配,None將返回值,而不是匹配對(duì)象。
          直接舉個(gè)例子:
          執(zhí)行將返回匹配對(duì)象的搜索

          import re#search() 函數(shù)返回一個(gè) Match 對(duì)象:txt = "hello world"x = re.search("wo", txt)print(x)

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          Match 對(duì)象具有用于檢索有關(guān)搜索和結(jié)果的信息的屬性和方法:

          span()返回一個(gè)包含匹配開始和結(jié)束位置的元組。 string返回傳遞給函數(shù)的字符串 group()返回字符串中匹配的部分

          span函數(shù)

          例如:打印第一個(gè)匹配項(xiàng)的位置(開始和結(jié)束位置)。正則表達(dá)式查找任何以大寫“S”開頭的單詞:

          import re#搜索單詞開頭的大寫“S”字符,并打印其位置txt = "The rain in Spain"x = re.search(r"bSw+", txt)print(x.span())

          運(yùn)行:
          歸納整理python正則表達(dá)式解析

          string函數(shù)

          例如:打印傳遞給函數(shù)的字符串

          import re#返回字符串txt = "The rain in Spain"x = re.search(r"bSw+", txt)print(x.string)

          group函數(shù)

          例如:打印字符串中匹配的部分。正則表達(dá)式查找任何以大寫“S”開頭的單詞

          import re#搜索單詞開頭的大寫“w”字符,并打印該單詞:txt = "hello world"x = re.search(r"bww+", txt)print(x.group())

          運(yùn)行:
          歸納整理python正則表達(dá)式解析
          注意:如果沒有匹配,None將返回值,而不是匹配對(duì)象。

          推薦學(xué)習(xí):python教程

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)