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

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

          歸納整理Python正則表達(dá)式知識點

          本篇文章給大家?guī)砹岁P(guān)于python的相關(guān)知識,其中主要介紹了關(guān)于正則表達(dá)式的相關(guān)問題,正則表達(dá)式(Regular Expression)是一段字符串,它可以表示一段有規(guī)律的信息,下面我們一起來看一下,希望對大家有幫助。

          歸納整理Python正則表達(dá)式知識點

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

          1.1正則表達(dá)式

          正則表達(dá)式(Regular Expression)是一段字符串,它可以表示一段有規(guī)律的信息。Python自帶一個正則表達(dá)式模塊,通過這個模塊可以查找、提取、替換一段有規(guī)律的信息。在一萬個人里面找一個人很困難,但是在一萬個人里面找一個非?!坝刑攸c”的人卻很容易。假設(shè)有一個人,皮膚是綠色的,身高三米,那么即使這個人混在一萬人中,其他人也能一眼找到他。這個“尋找”的過程,在正則表達(dá)式中叫作“匹配”。在程序開發(fā)中,要讓計算機程序從一大段文本中找到需要的內(nèi)容,就可以使用正則表達(dá)式來實現(xiàn)。使用正則表達(dá)式有如下步驟。
          (1)尋找規(guī)律。
          (2)使用正則符號表示規(guī)律。
          (3)提取信息。

          1.2正則表達(dá)式的基本符號

          1.2.1 點號 “ . ”

          一個點號可以代替除了換行符以外的任何一個字符,包括但不限于英文字母、數(shù)字、漢字、英文標(biāo)點符號和中文標(biāo)點符號。

          1.2.2 星號 “ * ”

          一個星號可以表示它前面的一個子表達(dá)式普通字符、另一個或幾個正則表達(dá)式符號)0次到無限次。

          歸納整理Python正則表達(dá)式知識點
          如上均可以:(星號表示的是前面的一個表達(dá)式)
          歸納整理Python正則表達(dá)式知識點

          1.2.3 點號+星號 “ .* ”

          點號表示任意非換行符的字符,星號表示匹配它前面的字符0次或者任意多次。所以“.*”表示匹配一串任意長度的字符串任意次。
          歸納整理Python正則表達(dá)式知識點
          如上均可以:
          它表示在“如”和“哈”中間出現(xiàn)“任意多個除了換行符以外的任意字符”。
          歸納整理Python正則表達(dá)式知識點

          1.2.4 問號“ ? ”

          問號表示它前面的子表達(dá)式0次或者1次。注意,這里的問號是英文問號歸納整理Python正則表達(dá)式知識點
          如上均可以:歸納整理Python正則表達(dá)式知識點

          1.2.5 點號+星號+問號“ .*?” (最常用)

          結(jié)合后用法:
          歸納整理Python正則表達(dá)式知識點
          如上均可以:
          歸納整理Python正則表達(dá)式知識點
          注:“ .*?” 與“ .* ”的區(qū)別
          .*?的意思就是匹配一個能滿足要求的最短字符串。
          一句話總結(jié)如下。
          ①“.*”:貪婪模式,獲取最長的滿足條件的字符串。
          ②“.*? ”:非貪婪模式,獲取最短的能滿足條件的字符串。

          1.2.6 小括號“()”

          從一段字符串中“提取”出一部分的內(nèi)容.
          有如下一個字符串:
          歸納整理Python正則表達(dá)式知識點
          可以看出,這里的密碼左邊有一個英文冒號,右邊有一個漢字“你”。當(dāng)構(gòu)造一個正則表達(dá)式:.*?你時,得到的結(jié)果將會是:
          歸納整理Python正則表達(dá)式知識點
          然而,冒號和漢字“你”并不是密碼的一部分,如果只想要“12345abcde”,就需要使用括號:
          歸納整理Python正則表達(dá)式知識點
          得到:
          歸納整理Python正則表達(dá)式知識點

          1.2.7 反斜杠 “ ”

          在正則表達(dá)式里面,很多符號都是有特殊意義的,例如問號、星號、大括號、中括號和小括號。反斜杠需要和其他的字符配合使用來把特殊符號變成普通符號,把普通符號變成特殊符號。
          歸納整理Python正則表達(dá)式知識點

          1.2.8 數(shù)字 “ d”

          正則表達(dá)式里面使用“d”來表示一位數(shù)字。
          如果要提取兩個數(shù)字,可以使用dd;如果要提取3個數(shù)字,可以使用ddd。但是如果不知道這個數(shù)有多少位怎么辦呢?就需要用*號來表示一個任意位數(shù)的數(shù)字。

          歸納整理Python正則表達(dá)式知識點
          全部都可以使用下面這個正則表達(dá)式來表示:
          歸納整理Python正則表達(dá)式知識點

          1.3 使用正則表達(dá)式

          Python的正則表達(dá)式模塊名字為“re”,也就是“regular expression”的首字母縮寫。在Python中需要首先導(dǎo)入這個模塊再進(jìn)行使用。導(dǎo)入的語句為:

          import re

          1.3.1 findall 方法

          Python的正則表達(dá)式模塊包含一個findall方法,它能夠以列表的形式返回所有滿足要求的字符串。
          findall的函數(shù)原型為:

          re.findall(pattern,string,flags=0)

          pattern表示正則表達(dá)式,string表示原來的字符串,flags表示一些特殊功能的標(biāo)志。findall的結(jié)果是一個列表,包含了所有的匹配到的結(jié)果。如果沒有匹配到結(jié)果,就會返回空列表。

          當(dāng)需要提取某些內(nèi)容的時候,使用小括號將這些內(nèi)容括起來,這樣才不會得到不相干的信息。如果包含多個“(.*? )”怎么返回呢?如圖3-2所示,返回的仍然是一個列表,但是列表里面的元素變?yōu)榱嗽M,元組里面的第1個元素是賬號,第2個元素為密碼。
          歸納整理Python正則表達(dá)式知識點

          函數(shù)原型中有一個flags參數(shù)。這個參數(shù)是可以省略的。當(dāng)不省略的時候,具有一些輔助功能,例如忽略大小寫、忽略換行符等。
          這里以忽略換行符為例來進(jìn)行說明要忽略換行符,就需要使用到“re.S”這個flag。歸納整理Python正則表達(dá)式知識點
          雖然說匹配到的結(jié)果中出現(xiàn)了“n”這個符號,不過總比什么都得不到強。內(nèi)容里面的換行符在后期清洗數(shù)據(jù)的時候把它替換掉即可。

          1.3.2 search 方法

          search()的用法和findall()的用法一樣,但是search()只會返回第1個滿足要求的字符串。一旦找到符合要求的內(nèi)容,它就會停止查找。對于從超級大的文本里面只找第1個數(shù)據(jù)特別有用,可以大大提高程序的運行效率。

          search()的函數(shù)原型為:歸納整理Python正則表達(dá)式知識點
          對于結(jié)果,如果匹配成功,則是一個正則表達(dá)式的對象;如果沒有匹配到任何數(shù)據(jù),就是None。

          如果需要得到匹配到的結(jié)果,則需要通過.group()這個方法來獲取里面的值。
          歸納整理Python正則表達(dá)式知識點
          只有在.group()里面的參數(shù)為1的時候,才會把正則表達(dá)式里面的括號中的結(jié)果打印出來。

          .group()的參數(shù)最大不能超過正則表達(dá)式里面括號的個數(shù)。參數(shù)為1表示讀取第1個括號中的內(nèi)容,參數(shù)為2表示讀取第2個括號中的內(nèi)容,以此類推。
          (注意圖里的不是findall)
          歸納整理Python正則表達(dá)式知識點

          1.3.3 compile 方法

          re.findall()自帶re.compile()的功能,所以沒有必要使用re.compile()。

          1.4 正則表達(dá)式的提取技巧

          1.4.1 先抓大后抓?。憾翁崛?/h2>

          歸納整理Python正則表達(dá)式知識點

          1.4.2 括號里括號外

          括號內(nèi)可以有其他字符。
          具體影響見下圖。
          歸納整理Python正則表達(dá)式知識點
          如果括號里面有其他普通字符,那么這些普通字符就會出現(xiàn)在獲取的結(jié)果里面。

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

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