亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python re庫的正則表達(dá)式入門學(xué)習(xí)教程

 更新時(shí)間:2019年03月08日 11:42:01   作者:唐瑋  
這篇文章主要給大家介紹了關(guān)于python re庫的正則表達(dá)式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

簡(jiǎn)介

正則表達(dá)式本身是一種小型的、高度專業(yè)化的編程語言,而在python中,通過內(nèi)嵌集成re模塊,程序媛們可以直接調(diào)用來實(shí)現(xiàn)正則匹配。正則表達(dá)式模式被編譯成一系列的字節(jié)碼,然后由用C編寫的匹配引擎執(zhí)行。

下面話不多說了,來一起看看詳細(xì)的介紹吧

1. 安裝

默認(rèn)已經(jīng)安裝好了python環(huán)境了

re庫是python3的核心庫,不需要pip install,直接import就行

2. 最簡(jiǎn)單的模式

字符本身就是最簡(jiǎn)單的模式

比如:'A', 'I love you', 'test'

然是注意在定義模式字符串的時(shí)候,在前面加上r,它的作用是告訴編譯器,接下來的字符串是單純的字符串,請(qǐng)不要轉(zhuǎn)變?yōu)檗D(zhuǎn)義字符。

例子

import re
pattern = r'Cookie'
sequence = 'Cookie'
re.match(pattern, sequence)
<re.Match object; span=(0, 6), match='Cookie'>

re.match()是常用的函數(shù),如果匹配,返回的是re.Match object.一個(gè)庫內(nèi)置的對(duì)象。如果沒有匹配返回的是None

3. 通配符

在正則表達(dá)式中,有些字符是有特殊意義的(不是轉(zhuǎn)義字符的那套規(guī)則),下面介紹常用的通配符字符

1)".":點(diǎn),代表任何字符,除了換行(newline)

re.search(r'Co.k.e', 'Cookie').group()

其中g(shù)roup()函數(shù)返回匹配的字符,返回類型是str

'Cookie'

2) "\w" 反斜杠小寫w,代表任何單個(gè)字母,數(shù)字,下劃線

re.search(r'Co\wk\we', 'Cookie').group()
'Cookie'

3) "\W" 反斜杠大寫W,代表任何2)中沒有代表的字符

re.search(r'C\Wke', 'C@ke').group()
'C@ke'

4) "\s" 反斜杠小寫s,代表一些空格字符,比如空格(space),換行(new line),跳格鍵(tab),回車(return)

re.search(r'Eat\scake', 'Eat cake').group()
'Eat cake'

5) "\S" 反斜杠大寫S,代表任何4)中沒有代表的字符

re.search(r'Cook\Se', 'Cookie').group()
'Cookie'

6) "\t" 反斜杠小寫t,代表跳格鍵(tab)

7) "\n" 反斜杠小寫t,代表換行(new line)

8) "\r" 反斜杠小寫t,代表回車(return)

9) "\d" 反斜杠小寫d,代表單個(gè)數(shù)字0-9

re.search(r'c\d\dkie', 'c00kie').group()
'c00kie'

10) "^" 這個(gè)鍵不知道叫什么,代表從字符開頭要匹配

re.search(r'^Eat', 'Eat cake').group()
'Eat'

11) "$" 美元符號(hào),代表從字符結(jié)尾要匹配

re.search(r'cake$', 'Eat cake').group()
'cake'

12) "[abc]" 中括號(hào)中任意字符,代表匹配其中任意字符

常用的方式,比如[a-zA-Z0-9],或者如果中括號(hào)中第一個(gè)字符是"^",代表不是這個(gè)范圍內(nèi)的字符

re.search(r'Number: [0-6]', 'Number: 5')
<re.Match object; span=(0, 9), match='Number: 5'>

再來個(gè)不在范圍內(nèi)的

re.search(r'Number: [^0-6]', 'Number: 7')
<re.Match object; span=(0, 9), match='Number: 7'>

4. 重復(fù)

第三部分介紹了單個(gè)通配符,那么怎么定義一串通配符呢,利用一些重復(fù)的標(biāo)志

1) "+" 加號(hào),表示在它左邊的字符出現(xiàn)一次或者多次

re.search(r'Co+kie', 'Cooookie')
<re.Match object; span=(0, 8), match='Cooookie'>

2) "*" 乘號(hào),表示在它左邊的字符出現(xiàn)零次或者多次

re.search(r'Ca*o*kie', 'Caokie').group()
'Caokie'

3) "?" 問號(hào),表示在它左邊的字符出現(xiàn)零次或者一次

re.search(r'Colou?r', 'Color').group()
'Color'

4) {x} 大括號(hào)加數(shù)字,重復(fù)確切幾次

5) {x,} 重復(fù)至少幾次

6) {x, y} 重復(fù)至少x次,不超過y次

re.search(r'\d{9,10}', '0987654321').group()
'0987654321'

5. 分組

比如說想定義一個(gè)email的格式,@之前的是一個(gè)規(guī)則,之后的是一個(gè)規(guī)則,那么通過()圓括號(hào)來分為兩組,分別定義在一個(gè)正則表達(dá)式中

然后如果滿足的話,通過group()函數(shù)指定返回哪一組的結(jié)果

比如

email_address = 'Please contact us at: support@datacamp.com'
match = re.search(r'([\w+-]+)@([\w\.-]+)', 'tw7613781@gmail.com')
if match:
 print(match.group()) # The whole matched text
 print(match.group(1)) # The username (group 1)
 print(match.group(2)) # The host (group 2)
tw7613781@gmail.com
tw7613781
gmail.com

@前為第一部分,\w代表代表任何單個(gè)字母,數(shù)字,下劃線,上面已經(jīng)介紹了,然后就是"\w"和"+"和"-"隨便哪一個(gè)至少一個(gè)或者多個(gè)

@后為第二部分,其余一樣,就是多了個(gè)"\.",因?yàn)?."代表的是任意字符了,如果想表達(dá)真正的點(diǎn),用"\."來表示。

6. python庫函數(shù)re的常用函數(shù)

1) re.search(pattern, string)和re.match(pattern, string)

區(qū)別在于search能從string中尋找任何滿足pattern的substring,但是match必須從頭開始

pattern = "cookie"
sequence = "Cake and cookie"

re.search(pattern, sequence).group()
'cookie'

如果是match會(huì)返回None

2) re.findall(pattern, string)

尋找string所有滿足pattern的substring,然后以list的形式返回

email_address = "Please contact us at: support@datacamp.com, xyz@datacamp.com"

#'addresses' is a list that stores all the possible match
addresses = re.findall(r'[\w\.-]+@[\w\.-]+', email_address)
for address in addresses: 
 print(address)
support@datacamp.com
xyz@datacamp.com

3) re.compile(pattern)

通過compile函數(shù)會(huì)生成一個(gè)pattern對(duì)象,這個(gè)pattern對(duì)象可以直接使用match,search等函數(shù)

In: pattern = re.compile(r"cookie")
In: pattern
Out: re.compile(r'cookie', re.UNICODE)
In: pattern.search('cookie')
Out: <re.Match object; span=(0, 6), match='cookie'>

學(xué)習(xí)材料

https://www.datacamp.com/community/tutorials/python-regular-expression-tutorial

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 將tensorflow的ckpt模型存儲(chǔ)為npy的實(shí)例

    將tensorflow的ckpt模型存儲(chǔ)為npy的實(shí)例

    今天小編就為大家分享一篇將tensorflow的ckpt模型存儲(chǔ)為npy的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • pandas實(shí)現(xiàn)數(shù)據(jù)讀取&清洗&分析的項(xiàng)目實(shí)踐

    pandas實(shí)現(xiàn)數(shù)據(jù)讀取&清洗&分析的項(xiàng)目實(shí)踐

    近期因工作需要,需對(duì)幾十萬條商品和訂單數(shù)據(jù)進(jìn)行初步的數(shù)據(jù)分析,本文主要pandas實(shí)現(xiàn)數(shù)據(jù)讀取&清洗&分析的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-05-05
  • Python的pycurl包用法簡(jiǎn)介

    Python的pycurl包用法簡(jiǎn)介

    這篇文章主要介紹了Python的pycurl包用法簡(jiǎn)介,文中羅列了其下模塊中的一些常用方法,需要的朋友可以參考下
    2015-11-11
  • python三大神器之fabric使用教程

    python三大神器之fabric使用教程

    fabric 是一個(gè)python包 是一個(gè)基于ssh的部署工具包,這篇文章主要介紹了python三大神器之fabric,需要的朋友可以參考下
    2019-06-06
  • 升級(jí)python導(dǎo)致Yum崩潰的解決辦法

    升級(jí)python導(dǎo)致Yum崩潰的解決辦法

    這篇文章主要介紹了升級(jí)python導(dǎo)致Yum崩潰的三種解決辦法,文中通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-11-11
  • pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道

    pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道

    今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 一文帶你掌握Python中文件I/O的使用技巧

    一文帶你掌握Python中文件I/O的使用技巧

    Python提供了強(qiáng)大而靈活的文件I/O(輸入/輸出)工具,能夠讀取、寫入和處理各種文件類型,本文將詳細(xì)介紹Python文件I/O的使用技巧,需要的可以參考一下
    2023-12-12
  • Python中ModuleNotFoundError: No module named ‘timm’的錯(cuò)誤解決

    Python中ModuleNotFoundError: No module named&n

    本文主要介紹了Python中ModuleNotFoundError: No module named ‘timm’的錯(cuò)誤解決,錯(cuò)誤意味著你的Python環(huán)境中沒有安裝名為“timm”的模塊,下面就介紹一下幾種解決方法,感興趣的可以了解一下
    2025-03-03
  • python使用ctypes調(diào)用第三方庫時(shí)出現(xiàn)undefined?symbol錯(cuò)誤詳解

    python使用ctypes調(diào)用第三方庫時(shí)出現(xiàn)undefined?symbol錯(cuò)誤詳解

    python中時(shí)間的庫有time和datetime,pandas也有提供相應(yīng)的時(shí)間處理函數(shù),下面這篇文章主要給大家介紹了關(guān)于python使用ctypes調(diào)用第三方庫時(shí)出現(xiàn)undefined?symbol錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • python 多種日期時(shí)間處理函數(shù)實(shí)例詳解

    python 多種日期時(shí)間處理函數(shù)實(shí)例詳解

    Python提供了豐富的日期和時(shí)間處理函數(shù),可以幫助你輕松地解析、格式化、計(jì)算和操作日期和時(shí)間,在實(shí)際應(yīng)用中,根據(jù)具體需求選擇合適的函數(shù),可以提高工作效率并簡(jiǎn)化代碼,本文給大家介紹python多種日期時(shí)間處理函數(shù)介紹,感興趣的朋友一起看看吧
    2024-03-03

最新評(píng)論