成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

RegularExpression怎么在python項(xiàng)目中使用-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)Regular Expression怎么在python項(xiàng)目中使用,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了武定免費(fèi)建站歡迎大家使用!

一、導(dǎo)入re庫

python使用正則表達(dá)式要導(dǎo)入re庫。

import re

在re庫中。正則表達(dá)式通常被用來檢索查找、替換那些符合某個(gè)模式(規(guī)則)的文本。

二、使用正則表達(dá)式步驟

1、尋找規(guī)律;

2、使用正則符號表示規(guī)律;

3、提取信息,如果每一個(gè)字符都能匹配,則匹配成功;一旦有匹配不成功的字符則匹配失敗。

三、正則表達(dá)式中常見的基本符號

1.點(diǎn)號“.”

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

2.星號“*”

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

3.問號“?”

    問號表示它前面的子表達(dá)式0次或者1次。注意,這里的問號是英文問號。

4.反斜杠“\”

    反斜杠在正則表達(dá)式里面不能單獨(dú)使用,甚至在整個(gè)Python里都不能單獨(dú)使用。反斜杠需要和其他的字符配合使用來把特殊符號變成普通符號,把普通符號變成特殊符號。如:“\n”。

5.?dāng)?shù)字“\d”

    正則表達(dá)式里面使用“\d”來表示一位數(shù)字。再次強(qiáng)調(diào)一下,“\d”雖然是由反斜杠和字母d構(gòu)成的,但是要把“\d”看成一個(gè)正則表達(dá)式符號整體。

6.小括號“()”

小括號可以把括號里面的內(nèi)容提取出來。

四、常見的正則表達(dá)式舉例

1.  .*?(匹配所有內(nèi)容)

例如:'<title>(.*?)</title>'   將網(wǎng)頁的標(biāo)題爬取下來。

2、\w 單詞字符[A-Za-z0-9_], "+" 匹配前一個(gè)字符1次或無限次 例如:一個(gè)人的郵箱是這樣的lixiaomei@qq.com,那么我們?nèi)绾螐囊淮蠖训淖址阉崛〕鰜砟兀?/p>

pattern: \w+@\w+\.com

Regular Expression怎么在python項(xiàng)目中使用

思考:若郵箱為hello123@heuet.edu.com,如何匹配?

pattern:\w+@(\w+\.)?\w+\.com

?代表了匹配0次或者1次括號分組內(nèi)的匹配內(nèi)容,"()"則表示被括內(nèi)容是一個(gè)分組,分組序號從pattern字符串起始往后依次排列。因?yàn)槭瞧ヅ?次或1次,那么就意味著括號內(nèi)的部分是可有可無的,所以這個(gè)pattern就可能匹配以上兩種郵箱格式。

擴(kuò)展: \w+@(\w+\.)*\w+\.com 模式就更厲害了," * " 可以匹配0次或無限次。

五、re庫的核心函數(shù)

Regular Expression怎么在python項(xiàng)目中使用

1、compile()函數(shù) (可有可無)

  • 函數(shù)定義: compile(pattern, flag=0)

  • 函數(shù)描述:編譯正則表達(dá)式pattern,然后返回一個(gè)正則表達(dá)式對象。

為什么要對pattern進(jìn)行編譯呢?《Python核心編程》里面是這樣解釋的:

使用預(yù)編譯的代碼對象比直接使用字符串要快,因?yàn)榻忉屍髟趫?zhí)行字符串形式的代碼前都必須把字符串編譯成代碼對象。

2、match()函數(shù)

  • 函數(shù)定義: match(pattern, string, flag=0)

  • 函數(shù)描述:只從字符串的最開始與pattern進(jìn)行匹配,匹配成功返回匹配對象(只有一個(gè)結(jié)果),否則返回None。

Regular Expression怎么在python項(xiàng)目中使用

問題來了,為什么result1結(jié)果有這么多的東西???貌似最后一個(gè)才是要匹配的對象。這個(gè)要怎么提取出來呀?

別著急,我們現(xiàn)在得到的是匹配對象,需要用一定的方法提取,后面會在《匹配對象的方法》章節(jié)來解決這個(gè)問題,繼續(xù)往下看。

3、search()函數(shù)

  • 函數(shù)定義: search(pattern, string, flag=0)

  • 函數(shù)描述:與match()工作的方式一樣,但是search()不是從最開始匹配的,而是從任意位置查找第一次匹配的內(nèi)容。如果所有的字串都沒有匹配成功,返回None,否則返回匹配對象。

Regular Expression怎么在python項(xiàng)目中使用

4、findall()函數(shù)

  • 函數(shù)定義: findall(pattern, string [,flags])

  • 函數(shù)描述:查找字符串中所有出現(xiàn)的正則表達(dá)式模式,并返回一個(gè)匹配列表

Regular Expression怎么在python項(xiàng)目中使用

上面同時(shí)列出了match、search、findall三個(gè)函數(shù)用法。findall與match和search不同的地方是它會返回一個(gè)所有無重復(fù)匹配的列表。如果沒找到匹配部分,就返回一個(gè)空列表。六、匹配對象的方法(提?。?/p>

以上re模塊函數(shù)的返回內(nèi)容可以分為兩種:

  • 返回匹配對象:就是上面如 <_sre.SRE_Match object; span=(0, 5), match='12345'>這樣的對象,可返回匹配對象的函數(shù)有match、search、finditer。

  • 返回一個(gè)匹配的列表:返回列表的就是 findall。

因此匹配對象的方法只適用match、search、finditer,而不適用與findall。

常用的匹配對象方法有這兩個(gè):group、groups、還有幾個(gè)關(guān)于位置的如 start、end、span就在代碼里描述了。

1、group方法

  • 方法定義:group(num=0)

  • 方法描述:返回整個(gè)的匹配對象,或者特殊編號的字組

Regular Expression怎么在python項(xiàng)目中使用

再看下面的實(shí)例:

Regular Expression怎么在python項(xiàng)目中使用

這里就需要用到我們之前提到的分組概念。

分組的意義在于:我們不僅僅想得到匹配的整個(gè)字符串,我們還想得到整個(gè)字符串里面的特定子字符串。如上例中,整個(gè)字符串是“我12345+abcde”,但是想得到 “abcde”,我們就可以用()括起來。因此,你可以對pattern進(jìn)行任何的分組,提取你想得到的內(nèi)容。

2、groups方法

  • 方法定義:groups(default =None)

  • 方法描述:返回一個(gè)含有所有匹配子組的元組,匹配失敗則返回空元組

Regular Expression怎么在python項(xiàng)目中使用

七、re模塊的屬性(flag)

re模塊的常用屬性有以下幾個(gè):

  • re.I: 匹配不分大小寫;(常用)

  • re.L: 根據(jù)使用的本地語言環(huán)境通過\w, \W, \b, \B, \s, \S實(shí)現(xiàn)匹配;

  • re.M: ^和$分別匹配目標(biāo)字符串中行的起始和結(jié)尾,而不是嚴(yán)格匹配整個(gè)字符串本身的起始和結(jié)尾;

  • re.S: “.”(點(diǎn)號)通常匹配除了\n(換行符)之外的所有單個(gè)字符,該標(biāo)記表示“.”(點(diǎn)號)能夠匹配全部字符;(常用)

  • re.X: 通過反斜線轉(zhuǎn)義,否則所有空格加上#(以及在該行中所有后續(xù)文字)都被忽略,除非在一個(gè)字符類中或者允許注釋并且提高可讀性;

Regular Expression怎么在python項(xiàng)目中使用

Regular Expression怎么在python項(xiàng)目中使用

注意:

如果我們定義了compile編譯,需要先將flag填到compile函數(shù)中,否則填到匹配函數(shù)中會報(bào)錯(cuò); 如果沒有定義compile,則可以直接在匹配函數(shù)findall中填寫flag。

附錄:

正則表達(dá)式中語法一覽表

Regular Expression怎么在python項(xiàng)目中使用

以上就是Regular Expression怎么在python項(xiàng)目中使用,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前標(biāo)題:RegularExpression怎么在python項(xiàng)目中使用-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://jinyejixie.com/article46/depgeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)網(wǎng)站策劃、商城網(wǎng)站響應(yīng)式網(wǎng)站、搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
浮梁县| 沾化县| 宜宾市| 辽宁省| 闻喜县| 林周县| 建昌县| 汶上县| 濮阳市| 平邑县| 平湖市| 深水埗区| 皮山县| 汽车| 理塘县| 沈丘县| 甘孜| 北海市| 汝南县| 中超| 广安市| 阳高县| 西林县| 甘孜县| 中阳县| 临清市| 田东县| 泾川县| 绍兴县| 抚远县| 阜城县| 鹿泉市| 新河县| 北宁市| 调兵山市| 临邑县| 铜陵市| 巢湖市| 平山县| 礼泉县| 吴旗县|