性夜影院午夜看片,无码精品久久一区二区三区,婷婷成人丁香五月综合激情,校园春色 qvod,性调教室高h学校

帶小白了解什么是Python教程-正則表達(dá)式?

今天馬哥教育要跟大家分享的文章是帶小白了解什么是Python教程-正則表達(dá)式?熟悉Python的小伙伴們都知道對于正則表達(dá)式,剛開始學(xué)習(xí)的時候,覺得它毫無規(guī)律的可言就是一串標(biāo)點符號和字母組成的一個不知道用來干什么的表達(dá)式。Python入門新手和正在Python學(xué)習(xí)的小伙伴快來看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?!

身邊的正則表達(dá)式

網(wǎng)上說的什么XX分鐘精通正則完全是騙人的。本文旨在讓大家對正則表達(dá)式有一些基礎(chǔ)的概念與了解,能看得懂簡單的正則表達(dá)式,寫得出簡單的正則表達(dá)式。至于精通,那就只能在日常開發(fā)過程中慢慢摸索深入理解了。

在講正則表達(dá)式之前,先給大家講個例子。假設(shè)你正在用手機(jī)瀏覽電子書(正看到男主收異火,尋寶物,煉丹藥,斗魂族踏上逆襲之路的時候,又或者女主兜兜轉(zhuǎn)轉(zhuǎn)又來到了自己命中注定的男主身邊的時候。)這時,突然你手滑了……又回到了整本書的首頁。這時你會怎么辦呢?大多數(shù)人應(yīng)該有如下三種辦法:

從首頁一頁一頁往目標(biāo)頁翻。這種情況雖然可以,但是等到你翻到那一頁的時候,估計你都忘了前面的劇情講了什么。這種我們列為下選。

還有一種就是你記得看的章節(jié),然后先跳轉(zhuǎn)到章節(jié)首頁,然后再一頁頁往后翻,這種雖然可以但是看書看的入神的時候誰還記得自己看第幾章啊。這種我們列為中選。

最后一種,就是根據(jù)關(guān)鍵字進(jìn)行篩選。假設(shè)你正看到男主角創(chuàng)立了“無盡火域”,或者女主角與男主角解開了種種矛盾重歸于好。那么此時你就可以根據(jù)文章中的關(guān)鍵字對整本書進(jìn)行檢索。這種又有利于你回憶自己看過的劇情,又快速的方法。我們列為上選。

讀到這里,很多朋友應(yīng)該已經(jīng)明白了。最后一種通過關(guān)鍵字檢索到我們所需求的文本就是正則表達(dá)式的一種——精確匹配。

正則表達(dá)式的相關(guān)知識

在我們?nèi)粘i_發(fā)中,正則通常被用來校驗用戶輸入的內(nèi)容是否符合邏輯。如:校驗郵箱、生日、手機(jī)號、身份證號等等。

那么接下來我們就來一起學(xué)習(xí)一下它。因為正則表達(dá)式也是用字符串表示的,所以,我們要首先了解如何用字符來描述字符。

在正則表達(dá)式中,如果直接給出字符,就是精確匹配。用d可以匹配一個數(shù)字,w可以匹配一個字母或數(shù)字,所以:

'00d'可以匹配'007',但無法匹配'00A';

'ddd'可以匹配'010';

'wwd'可以匹配'py3';

. 可以匹配任意字符。例如:

pytho. 可以匹配Python、pythoa、pytho7、Python!等。

要匹配變長的字符,在正則表達(dá)式中, * 表示任意個字符(包括零個),+ 表示至少一個字符,? 表示零個或一個字符, {n} 表示n個字符,{n,m} 表示n-m個字符,[] 表示范圍。我們來看一個例子:

^[1-9]d{4,11}$

上面的表達(dá)式中:

^:表達(dá)了一行的起始位置。

^[1-9]:表示了必須以數(shù)字1-9開開頭的字符串。

{4,11}:表示了4到11個字符 。

$:表示一行的結(jié)束位置,d$表示必須以數(shù)字結(jié)尾。

下表是對正則表達(dá)式中的一些基本符號進(jìn)行的總結(jié)。

正則表達(dá)式

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

Python 自1.5版本起增加了 re 模塊,它提供 Perl 風(fēng)格的正則表達(dá)式模式。

re 模塊使 Python 語言擁有全部的正則表達(dá)式功能。

由于Python中也使用 ‘’ 作為轉(zhuǎn)義字符。因此,建議大家在字符串前面加上r,用來表示原始字符串。舉例:

# 不加 r使用 轉(zhuǎn)義

s = 'ABC\-001'

 # Python的字符串

# 對應(yīng)的正則表達(dá)式字符串變成:

# 'ABC-001'

# 加 r 使用原始字符串s = r'ABC-001'

 # Python的字符串

# 對應(yīng)的正則表達(dá)式字符串不變:

# 'ABC-001'

下面是re包的常用函數(shù):

零基礎(chǔ)Python教程

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

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

#!/usr/bin/Python

import re

line = "Cats are smarter than dogs";

matchObj = re.match( r'dogs', line, re.M|re.I)

if matchObj:

print "match --> matchObj.group() : ", matchObj.group()

else:

print "No match!!"

matchObj = re.search( r'dogs', line, re.M|re.I)

if matchObj:

print "search --> matchObj.group() : ", matchObj.group()

else:

print "No match!!"

# 運(yùn)行結(jié)果No match!!

search --> matchObj.group() : dogs

正則表達(dá)式可以包含一些可選標(biāo)志修飾符來控制匹配的模式。修飾符被指定為一個可選的標(biāo)志。多個標(biāo)志可以通過按位 OR(|) 它們來指定。如 re.I | re.M 被設(shè)置成 I 和 M 標(biāo)志。

以上就是馬哥教育今天為大家分享的關(guān)于帶小白了解什么是Python教程-正則表達(dá)式的文章,希望本篇文章能夠?qū)φ趶氖翽ython相關(guān)工作的小伙伴們有所幫助,想要了解更多相關(guān)知識記得關(guān)注馬哥教育官網(wǎng),每天都會有大量優(yōu)質(zhì)內(nèi)容與大家分享!

聲明:文章來源于網(wǎng)絡(luò),侵刪!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!