帶小白了解什么是Python教程-正則表達式?
今天馬哥教育要跟大家分享的文章是帶小白了解什么是Python教程-正則表達式?熟悉Python的小伙伴們都知道對于正則表達式,剛開始學習的時候,覺得它毫無規律的可言就是一串標點符號和字母組成的一個不知道用來干什么的表達式。Python入門新手和正在Python學習的小伙伴快來看一看吧,希望能夠對大家有所幫助 !
身邊的正則表達式
網上說的什么XX分鐘精通正則完全是騙人的。本文旨在讓大家對正則表達式有一些基礎的概念與了解,能看得懂簡單的正則表達式,寫得出簡單的正則表達式。至于精通,那就只能在日常開發過程中慢慢摸索深入理解了。
在講正則表達式之前,先給大家講個例子。假設你正在用手機瀏覽電子書(正看到男主收異火,尋寶物,煉丹藥,斗魂族踏上逆襲之路的時候,又或者女主兜兜轉轉又來到了自己命中注定的男主身邊的時候。)這時,突然你手滑了……又回到了整本書的首頁。這時你會怎么辦呢?大多數人應該有如下三種辦法:
從首頁一頁一頁往目標頁翻。這種情況雖然可以,但是等到你翻到那一頁的時候,估計你都忘了前面的劇情講了什么。這種我們列為下選。
還有一種就是你記得看的章節,然后先跳轉到章節首頁,然后再一頁頁往后翻,這種雖然可以但是看書看的入神的時候誰還記得自己看第幾章啊。這種我們列為中選。
最后一種,就是根據關鍵字進行篩選。假設你正看到男主角創立了“無盡火域”,或者女主角與男主角解開了種種矛盾重歸于好。那么此時你就可以根據文章中的關鍵字對整本書進行檢索。這種又有利于你回憶自己看過的劇情,又快速的方法。我們列為上選。
讀到這里,很多朋友應該已經明白了。最后一種通過關鍵字檢索到我們所需求的文本就是正則表達式的一種——精確匹配。
正則表達式的相關知識
在我們日常開發中,正則通常被用來校驗用戶輸入的內容是否符合邏輯。如:校驗郵箱、生日、手機號、身份證號等等。
那么接下來我們就來一起學習一下它。因為正則表達式也是用字符串表示的,所以,我們要首先了解如何用字符來描述字符。
在正則表達式中,如果直接給出字符,就是精確匹配。用d可以匹配一個數字,w可以匹配一個字母或數字,所以:
'00d'可以匹配'007',但無法匹配'00A';
'ddd'可以匹配'010';
'wwd'可以匹配'py3';
. 可以匹配任意字符。例如:
pytho. 可以匹配Python、pythoa、pytho7、Python!等。
要匹配變長的字符,在正則表達式中, * 表示任意個字符(包括零個),+ 表示至少一個字符,? 表示零個或一個字符, {n} 表示n個字符,{n,m} 表示n-m個字符,[] 表示范圍。我們來看一個例子:
^[1-9]d{4,11}$
上面的表達式中:
^:表達了一行的起始位置。
^[1-9]:表示了必須以數字1-9開開頭的字符串。
{4,11}:表示了4到11個字符 。
$:表示一行的結束位置,d$表示必須以數字結尾。
下表是對正則表達式中的一些基本符號進行的總結。
Python中的正則表達式
Python 自1.5版本起增加了 re 模塊,它提供 Perl 風格的正則表達式模式。
re 模塊使 Python 語言擁有全部的正則表達式功能。
由于Python中也使用 ‘’ 作為轉義字符。因此,建議大家在字符串前面加上r,用來表示原始字符串。舉例:
# 不加 r使用 轉義 s = 'ABC\-001' # Python的字符串 # 對應的正則表達式字符串變成: # 'ABC-001' # 加 r 使用原始字符串s = r'ABC-001' # Python的字符串 # 對應的正則表達式字符串不變: # 'ABC-001'
下面是re包的常用函數:
re.match與re.search的區別
re.match只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回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!!" # 運行結果No match!! search --> matchObj.group() : dogs
正則表達式可以包含一些可選標志修飾符來控制匹配的模式。修飾符被指定為一個可選的標志。多個標志可以通過按位 OR(|) 它們來指定。如 re.I | re.M 被設置成 I 和 M 標志。
以上就是馬哥教育今天為大家分享的關于帶小白了解什么是Python教程-正則表達式的文章,希望本篇文章能夠對正在從事Python相關工作的小伙伴們有所幫助,想要了解更多相關知識記得關注馬哥教育官網,每天都會有大量優質內容與大家分享!
聲明:文章來源于網絡,侵刪!