国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python正則表達式簡記和re庫

hizengzeng / 2190人閱讀

摘要:正則表達式是定義搜索模式的字符序列。通常這種模式被字符串搜索算法用于字符串上的查找或查找和替換操作,或者用于輸入驗證。

正則表達式是定義搜索模式的字符序列。通常這種模式被字符串搜索算法用于字符串上的“查找”或“查找和替換”操作,或者用于輸入驗證。
1. 正則表達式的語法

. 表示任何單個字符

[] 字符集,對單個字符給出取值范圍

[^] 非字符集,對單個字符給出排除范圍

*前一個字符0次或者無限次擴展

+前一個字符1次或無限次擴展

?前一個字符0次或1次擴展

|左右表達式任意一個

{m}擴展前一個字符m次

{m,n}擴展前一個字符m至n次

^匹配字符串開頭

$匹配字符串結尾

()分組標記,內部只能使用|操作符

d數字,等價于[0-9]

w單詞字符,等價于[A-Z,a-z,0-9]

2. python中re庫的使用
Re庫是python的標準庫,主要用于字符串匹配,調用方法:import re
2.1. 正則表達式字符串的類型

re庫采用raw string類型來表示正則表達式,表示為
r"text"
raw string是不包含對轉義符的再次轉義的字符串,總而言就是string會對字符轉義,而raw string不會,因為在正則表達中會出現轉義符號,所以避免繁瑣我們使用raw string

2.2. Re庫主要功能函數

re.search()在一個字符串中搜索正則表達式的第一個位置,返回match對象

re.match()從一個字符串的開始位置起匹配正則表達式,返回match對象

re.findall()搜索字符串,以列表類型返回全部能匹配的子串

re.split()將一個字符串按照正則表達式匹配結果進行分割,返回列表類型

re.finditer()搜索字符串,返回一個匹配結果的迭代類型,每個迭代元素是match對象

re.sub()在一個字符串中替換所有匹配正則表達式的子串,返回替換后的字符串

2.2.1. re.search(pattern, string, flags=0)

在一個字符串中搜索正則表達式的第一個位置,返回match對象

pattern : 正則表達式的字符串或原生字符串表示

string : 待匹配字符串

flags : 正則表達式使用時的控制標記

re.I re.IGNORECASE 忽略正則表達式的大小寫,[A‐Z]能夠匹配小寫字符

re.M re.MULTILINE 正則表達式中的^操作符能夠將給定字符串的每行當作匹配開始

re.S re.DOTALL 正則表達式中的.操作符能夠匹配所有字符,默認匹配除換行外的所有字符

舉例說明:

import re
match = re.search(r"[1-9]d{5}", "BIT 100081")
if match:
    print(match.group(0))

結果為100081
2.2.2. re.match(pattern, string, flags=0)

從一個字符串的開始位置起匹配正則表達式,返回match對象
參數同search函數
舉例說明:

import re
match = re.match(r"[1-9]d{5}", "BIT 100081")
print(match.group(0))

結果會報錯,match為空,因為match函數是
從字符串開始位置開始匹配,因為從開始位置沒有匹配到,所以為空
2.2.3. re.findall(pattern, string, flags=0)

搜索字符串,以列表類型返回全部能匹配的子串
參數同search
舉例說明:

import re
ls=re.findall(r"[1-9]d{5}", "BIT100081 TSU100084")
print(ls)

結果為["100081", "100084"]
2.2.4. re.split(pattern, string, maxsplit=0, flags=0)

將一個字符串按照正則表達式匹配結果進行分割返回列表類型

maxsplit : 最大分割數,剩余部分作為最后一個元素輸出

舉例說明 :

import re
re.split(r"[1-9]d{5}", "BIT100081 TSU100084")
結果["BIT", " TSU", " "]
re.split(r"[1-9]d{5}", "BIT100081 TSU100084", maxsplit=1)
結果["BIT", " TSU100081"]
2.2.5. re.finditer(pattern, string, maxsplit=0, flags=0)

搜索字符串,返回一個匹配結果的迭代類型,每個迭代元素是match對象
參數同search
舉例說明 :

import re
for m in re.finditer(r"[1-9]d{5}", "BIT100081 TSU100084"):
    if m:
        print(m.group(0))
結果為
100081
100084
2.2.6. re.sub(pattern, repl, string, count=0, flags=0)

在一個字符串中替換所有匹配正則表達式的子串返回替換后的字符串

repl : 替換匹配字符串的字符串

count : 匹配的最大替換次數

舉例說明:

import re
re.sub(r"[1-9]d{5}", ":zipcode", "BIT100081 TSU100084")
結果為
"BIT:zipcode TSU:zipcode"
2.3 Re庫的另一種等價用法(面向對象)
rst=re.search(r"[1-9]d{5}", "BIT 100081")
函數式的調用,一次性操作
pat=re.compile(r"[1-9]d{5}")
rst=pat.search("BIT 100081")
編譯后多次操作

regex=re.complie(pattern,flags=0)
regex也有以上六種用法

2.4 Re庫的Match對象
Match對象是是一次匹配的結果,包含匹配的很多信息

以下是Match對象的屬性

.string 待匹配的文本

.re 匹配時使用的patter對象(正則表達式)

.pos 正則表達式搜索文本的開始位置

.endpos 正則表達式搜索文本的結束位置

以下是Match對象的方法

.group(0) 獲得匹配后的字符串

.start() 匹配字符串在原始字符串的開始位置

.end() 匹配字符串在原始字符串的結束位置

.span() 返回(.start(), .end())

2.5 Re庫的貪婪匹配和最小匹配

當正則表達式可以匹配長短不同的多項時,返回哪一個呢?Re庫默認采用貪婪匹配,即返回匹配最長的子串

最小匹配

*? 前一個字符0次或無限次擴展,最小匹配

+? 前一個字符1次或無限次擴展,最小匹配

?? 前一個字符0次或1次擴展,最小匹配

{m,n}? 擴展前一個字符m至n次(含n),最小匹配

只要長度輸出可能不同的,都可以通過在操作符后增加?變成最小匹配

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/43136.html

相關文章

  • Python標準---19、文本處理服務:re正則達式操作

    摘要:正則表達式使用反斜杠來表示特殊形式,或者把特殊字符轉義成普通字符。解決辦法是對于正則表達式樣式使用的原始字符串表示法在帶有前綴的字符串字面值中,反斜杠不必做任何特殊處理。為了避免警告,需要將它們用反斜杠轉義。 上一篇文章:Python標準庫---18、文本處理服務:string 常見的字符串操作下一篇文章: 這個模塊提供了與 Perl 語言類似的正則表達式匹配操作。 模式和被搜索的字...

    jcc 評論0 收藏0
  • Python3網絡爬蟲實戰---26、正則達式

    摘要:上一篇文章網絡爬蟲實戰高級用法下一篇文章網絡爬蟲實戰與正則表達式抓取貓眼電影排行本節我們看一下正則表達式的相關用法,正則表達式是處理字符串的強大的工具,它有自己特定的語法結構,有了它,實現字符串的檢索替換匹配驗證都不在話下。 上一篇文章:Python3網絡爬蟲實戰---25、requests:高級用法下一篇文章:Python3網絡爬蟲實戰---27、Requests與正則表達式抓取貓眼...

    Pocher 評論0 收藏0
  • 關于爬蟲解析數據的4種方式

    摘要:大奉打更人賣報小郎君這個人仙太過正經言歸正傳從紅月開始黑山老鬼穩住別浪跳舞二解析數據是一個可以從或文件中提取數據的庫。 目錄 一、XPath解析數據 1、XPath解析數據 2、XML的樹形結構 3、使用XPath選取節點 4、課堂案例 - 爬取起點小說網 二、BeautifulSoup解析...

    newtrek 評論0 收藏0
  • Python 的魔術方法做出更好的正則達式 API

    摘要:注原文地址為我的一個同事提到他錯過了的正則表達式的語法糖。首先,從正則表達式檢索捕捉組需要兩個步驟。語法糖為了好玩,我把一個小小的增加了一些語法糖的正則表達式庫的幫助類放在一起。調用將調用類的方法。 注:原文地址為 Playing with Python Magic Methods to make a nicer Regex API 我的一個同事提到,他錯過了 Ruby 的正...

    MangoGoing 評論0 收藏0
  • Python正則達式如何實現重疊匹配

      本文主要是給大家介紹的是,Python中正則表達式如何實現重疊匹配的具體操作方法,給大家貼出了具體實例代碼,希望能給各位讀者帶來一定的幫助。正則表達式實現重疊匹配importregex string='100101010001' str_re='101' print(regex.findall(str_re,string,overlapped=True))普通的...

    89542767 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<