欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python正則表達(dá)式急速入門(小結(jié))-創(chuàng)新互聯(lián)

正則表達(dá)式在程序開發(fā)中會(huì)經(jīng)常用到,比如數(shù)據(jù)(格式)驗(yàn)證、替換字符內(nèi)容以及提取字符串內(nèi)容等等情況都會(huì)用到,但是目前許多開發(fā)人員對于正則表達(dá)式只是處于了解或者是基本會(huì)用的階段。一旦遇到大批量使用正則表達(dá)式的情況(例如網(wǎng)絡(luò)爬蟲)可以說基本上就抓瞎了。這篇文章我將帶領(lǐng)大家利用 Python 來學(xué)習(xí)一下正則表達(dá)式。在閱讀這篇文章前你需要掌握 Python 基礎(chǔ)知識(shí),或者具有其他開發(fā)語言的基礎(chǔ)知識(shí)也可以,因?yàn)榛旧厦糠N語言使用正則表達(dá)式的方式都是類似的。

成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。創(chuàng)新互聯(lián)公司多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián)公司,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。

零、正則表達(dá)式基礎(chǔ)

1.提取字符(串) 有時(shí)我們需要從一個(gè)字符串中獲取一段內(nèi)容,這段內(nèi)容可能是一個(gè)字符也可能是一段字符串,如果用逐字對比遍歷的話不僅耗時(shí)耗力而且還容易出錯(cuò)。那么這個(gè)時(shí)候我們就可以用到正則表達(dá)式中的 字符匹配 功能。正則表達(dá)式為我們提供了 4 種字符匹配的方法,見下表:

語法 說明 例子 可匹配字符串
. 匹配除了換行符 “\n” 以外的任意字符 a.b acb、adb、a2b、a~b
\ 轉(zhuǎn)義,將轉(zhuǎn)移字符后面的一個(gè)字符改變原來的意思 a[b\.\\]c abc、a.c、a\c
[] 匹配括號(hào)內(nèi)的任意字符 a[b,c,d,e]f abd、acf、adf、aef
[^] 除了括號(hào)內(nèi)的字符外,其他的字符都匹配 aa,b,c,d,ef a1f、a#f、azf、agf

2.預(yù)定義字符 所謂預(yù)定義字符就是正則表達(dá)式中為我們預(yù)留的專門用來匹配格式化內(nèi)容的字符,例如匹配數(shù)字用的 \d 和匹配空白符的 \s 等等。我們可以利用預(yù)定義字符快速的匹配出一個(gè)字符串中符合要求的內(nèi)容。預(yù)定義字符匹配的內(nèi)容,同樣也可以利用前面所講的字符匹配的方式匹配出來,但是代碼量會(huì)相對來說多一點(diǎn)。下表所列的就是預(yù)定義字符:

語法 說明 例子 可匹配字符串
^ 以什么字符串開始 ^123 123abc、123321、123zxc
$ 以什么字符串結(jié)尾 123$ abc123、321123、zxc123
\b 匹配單詞邊界,不匹配任何字符 \basd\b asd
\d 匹配數(shù)字0-9 zx\dc zx1c、zx2c、zx5c
\D 匹配非數(shù)字 zx\Dc zxvc、zx$c、zx&c
\s 匹配空白符 zx\sc zx c
\S 匹配非空白符 zx\Sc zxac、zx1c、zxtc
\w 匹配字母、數(shù)字和下劃線 zx\wc zxdc、zx1c、zx_c
\W 匹配非字母、數(shù)字和下劃線 zx\Wc zx c、zx$c、zx(c

在預(yù)定義字符中有如下幾點(diǎn)需要注意:

  • \b 匹配的只是一個(gè)位置,這個(gè)位置的一側(cè)是構(gòu)成單詞的字符,另一側(cè)為非單詞字符、字符串的開始或結(jié)束位置。\b 是零寬度。
  • \w 在不同編碼語言中匹配的范圍是不一樣的,在使用 ASCII 碼的語言中匹配的是 [a-zA-Z0-9] ,而在使用 Unicode 碼的語言中匹配的是 [a-zA-Z0-9] 和漢字、全角符號(hào)等特殊字符。

3.限制數(shù)量 在某些情況下我們需要匹配重復(fù)的內(nèi)容,這時(shí)我們可以使用 數(shù)量限定 模式來進(jìn)行操作。數(shù)量限定如下表: 

語法 說明 例子 可匹配字符串
* 匹配0到多次 zxc* zx、zxccccc
+ 匹配1次到多次 zxc+ zxc、zxccccc
? 匹配0次或1次 zxc? zxc、zx
{m} 匹配m次 zxc{3}vb zxcccvb
{m,} 匹配m次或多次 zxc{3,}vb zxcccvb、zxccccccccvb
{,n} 匹配0次到n次 zxc{,3}vb zxvb、zxcvb、zxccvb、zxcccvb
{m,n} 匹配m次到n次 zxc{1,3} zxcvb、zxccvb、zxcccvb

4.斷言 斷言,又稱零寬斷言,指的是當(dāng)斷言表達(dá)式為 True 時(shí)才進(jìn)行匹配,但是并不匹配斷言表達(dá)式內(nèi)容。和 ^ 代表開頭, $ 代表結(jié)尾, \b 代表單詞邊界一樣,先行斷言和后行斷言也有類似的作用,它們只匹配某些位置,在匹配過程中,不占用字符,所以被稱為零寬。所謂位置,是指字符串中第一個(gè)字符的左邊、最后一個(gè)字符的右邊以及相鄰字符的中間。零寬斷言表達(dá)式有四種:

  • 零寬度負(fù)回顧后發(fā)斷言 (?<!exp),表達(dá)式不成立時(shí)匹配斷言后面的位置,成立時(shí)不匹配。例如 \w+(?<zxc)\d,匹配不以 zxc 結(jié)尾的字符串;
  • 零寬度負(fù)回顧先行斷言 (?!exp),表達(dá)式匹配斷言前面的位置,成立時(shí)則不匹配。例如:\d(?!zxc)\w+,匹配不以 zxc 開頭的字符串;
  • 先行斷言 (?=exp),斷言為真時(shí)匹配斷言前面的位置,例如要在 “a regular expression” 這個(gè)字符串中追匹配出 regular 中的 re ,我們可以這么寫 re(?=gular);
  • 后發(fā)斷言 (?<=exp),斷言為真時(shí)匹配斷言后面的位置,例如對 “egex represents regular expression” 這個(gè)字符串要想匹配除 regex 和 regular 之外的re,可以用 re(?!g),該表達(dá)式限定了re右邊的位置,這個(gè)位置后面不是字符g。先行和后發(fā)的區(qū)別就在于該位置之后的字符能否匹配括號(hào)中的表達(dá)式。

5.貪婪/非貪婪 正則表達(dá)式會(huì)盡可能多的去匹配字符,這被稱為貪婪模式,貪婪模式是正則表達(dá)式默認(rèn)的模式。但是有時(shí)候貪婪模式會(huì)給我們造成不必要的困擾,例如我們要匹配字符串 “Jack123Chen123Chen” 中的 “Jack123Chen”,但是貪婪模式匹配出的卻是 “Jack123Chen123Chen”,這時(shí)我們就需要用到非貪婪模式來解決這個(gè)問題,非貪婪模式常用的表達(dá)式如下: 

語法 說明
*? 匹配0次或多次,但要盡可能少重復(fù)
+? 匹配1次或多次,但要盡可能少重復(fù)
?? 匹配0次或1次,但要盡可能少重復(fù)
{m,}? 匹配m次或多次,但要盡可能少重復(fù)
{m,n}? 匹配m次或n次,但要盡可能少重復(fù)

6.其他 上述內(nèi)容在正則表達(dá)式中都是常用的,下面我們再來看看不常用到的,但是功能同樣強(qiáng)大的語法。

  • OR 匹配又稱匹配分支,也就是說只要有一個(gè)分支匹配就算匹配,這和我們在開發(fā)中使用的 OR 語句類似。OR 匹配利用 | 分割分支,例如我們需要匹配出英文姓名,但是在英文中姓和名中間有可能是以 · 分割,也有可能是以空格分隔,這時(shí)我們就可以利用 OR 匹配來處理這個(gè)問題。格式如下:[A-Za-z]+·[A-Za-z]+|[A-Za-z]+\s[A-Za-z]+
  • 組合,將幾個(gè)項(xiàng)組合為一個(gè)單元,這個(gè)單元可通過* + ? | 等符號(hào)加以修飾,而且可以記住和這個(gè)組合相匹配的字符串以提供伺候的引用使用。分組使用 () 來表示。例如獲取日期的正則表達(dá)式可以這么寫:\d{4}-(0[1-9]|1[0-2])-(0[1-9]|12|3[01])。第一個(gè)分組 (0[1-9]|1[0-2]) 代表月的正則匹配,第二個(gè)分組 (0[1-9]|12|3[01]) 代表日的正則匹配。

一、Python 使用正則表達(dá)式

在 Python 中使用正則表達(dá)式很簡單,re 模塊向我們提供了正則表達(dá)式的支持。使用步驟一共三步:

  • 將正則表達(dá)式字符串轉(zhuǎn)換為 Pattern 的實(shí)例;
  • 使用 Pattern 實(shí)例去處理要匹配的字符,匹配結(jié)果是一個(gè) Match 實(shí)例;
  • 利用 Match 實(shí)例去進(jìn)行之后的操作。

在 Python 中我們常用的 re 的方法有六種,分別是: compile 、 match 、 search 、 findall 、 split 和 sub ,下面就針對這六種方法進(jìn)行一下講解。

compile compile 方法的作用是將正則表達(dá)式字符串轉(zhuǎn)化為 Pattern 實(shí)例,它具有兩個(gè)參數(shù) pattern 和 flags ,pattern 參數(shù)類型是 string 類型,接收的是正則表達(dá)式字符串,flags 類型是 int 類型,接收的是匹配模式的編號(hào),flags 參數(shù)是非必填項(xiàng),默認(rèn)值為 0 (忽略大小寫)。flags 匹配模式有如下 6 種: 

匹配模式 說明
re.I 忽略大小寫
re.M 多行匹配模式
re.S 任意匹配模式
re.L 預(yù)定義字符匹配模式
re.U 限定字符匹配模式
re.V 詳細(xì)模式

上述六種模式在實(shí)際開發(fā)中很少用到,我們只需要了解即可。 使用 compile 很簡單,如下: 

import re ​ 
pattern = re.compile(r'\d') 

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:Python正則表達(dá)式急速入門(小結(jié))-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://aaarwkj.com/article26/ieicg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、服務(wù)器托管、營銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、網(wǎng)站策劃、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(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)站網(wǎng)頁設(shè)計(jì)
国产传媒视频在线观看| av全欧国男人在线天堂| 亚洲欧美日韩香蕉在线观看| 欧美日韩国产成人激情| 人妻中出中文字幕一区二区| 日本熟妇一区二区三区高清视频| 日韩中文字幕久久中文字幕| 日本岛国大片在线视频| 久久精品国产亚洲av不丁香| 97人妻人人揉人人澡人人学生| 日本韩国一区二区精品| 日本午夜免费在线视频| 夫妻性生活免费看视频| 在线蜜臀av中文字幕| 夜夜高潮夜夜爽免费观看| 亚洲国产中文一区二区久久| 人妻系列少妇人妻偷人| 18末年禁止观看免费软件| 日韩在线中文字幕一区| 国产专区亚洲精品欧美| 国产乱人伦真实精品视频| 中文字幕二区三区人妻| 日韩黄色成人免费片子| 国产成人精品手机在线观看| 日韩精选视频在线播放| 上海老熟女啪啪露脸高潮| 久久亚洲天堂av丁香| 91精品国产自产在线蜜臀| 中文字幕熟妇人妻av在线| 成人免费激情在线观看| 日韩av在线黄色免费大全| 一本久道久久综合狠狠老| 欧美高清成人一区二区三区| 国产原创传媒在线观看| 亚洲精品国产av成人网| 国产精品专区日产一区| 亚洲综合色婷婷七月丁香| 日本一区二区高清网址| 99热这里只有精品最新| 成人免费毛片内射视频| 日韩精品一区二区视频大全|