欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談Python的正則表達(dá)式

 更新時(shí)間:2023年04月21日 08:43:41   作者:CrazyDragon_King  
這篇文章主要介紹了淺談Python的正則表達(dá)式,正則表達(dá)式本身是獨(dú)立于編程語言的知識,但是它又依附于編程語言,需要的朋友可以參考下

Python 正則表達(dá)式

正則表達(dá)式本身是獨(dú)立于編程語言的知識,但是它又依附于編程語言,基本上我們所使用的編程語言都提供了對它的實(shí)現(xiàn),當(dāng)然了,各家的實(shí)現(xiàn)也是有一些差異的,有的支持的功能多一點(diǎn),有的支持的少一點(diǎn)。

因?yàn)檎齽t表達(dá)式是實(shí)踐中使用廣泛的工具,所以脫離語言的學(xué)習(xí)我認(rèn)為是不靠譜的。

正則表達(dá)式的函數(shù)介紹

正則表達(dá)式主要API關(guān)系圖

這個(gè)圖是我個(gè)人總結(jié)的,我覺得基本上把這里的函數(shù)的關(guān)系弄清楚了,它們的作用是:

  • match 從文本的開頭匹配正則表達(dá)式,返回匹配的對象,沒有就返回 None
  • search 在整個(gè)文本中匹配正則表達(dá)式,返回第一個(gè)匹配的對象,沒有就返回 None。
  • sub 利用正則表達(dá)式進(jìn)行文本替換(正則表達(dá)式的功能:搜索和替換)
  • findall 從整個(gè)文本中匹配正則表達(dá)式,以列表的形式返回所有匹配的結(jié)果。
  • finditer 從整個(gè)文本中匹配正則表達(dá)式,以迭代器的形式返回所有匹配的結(jié)果。
  • split 利用正則表達(dá)式切分文本

這里可以看出,·re· 下面有很多立即可以使用的函數(shù),然后 re.compile 下面有很多同名的函數(shù)。直接在 ·re· 模塊下的是官方提供方便使用的函數(shù),通過 re.compile 來使用是最正統(tǒng)的方式。所以,接下來的內(nèi)容,我基本上智慧使用 re.compile 及其下的方法來實(shí)現(xiàn)。

re.compile 函數(shù)

compile 函數(shù)用于編譯正則表達(dá)式,生成一個(gè)正則表達(dá)式 (Pattern)對象,供 match()search() 以及其它函數(shù)使用。

語法:

re.compile(pattern[, flags])
  • pattern: 一個(gè)字符串形式的正則表達(dá)式
  • flags 可選,表示匹配模式,比如忽略大小寫,多行模式等,具體參數(shù)為:
    • re.I 忽略大小寫
    • re.L 多行模式
    • re.S 即為 '.' 并且包括換行符在內(nèi)的任意字符('.' 不包括換行符)
    • re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依賴 Unicode 字符屬性數(shù)據(jù)庫
    • re.X 為了增加可讀性,忽略空格和 ‘#’ 后面的注釋

示例:查找字符串中的所有數(shù)字

import re

s = 'runoob 123 google 456'
result1 = re.findall(r'\d+', s)

pattern = re.compile(r'\d+') # 查找數(shù)字
result2 = pattern.findall(s)
result3 = pattern.findall(s, 0, 20)


print(result1)
print(result2)
print(result3)


"""
output:
[‘123', ‘456']
[‘123', ‘456']
[‘123', ‘45']
"""

學(xué)習(xí)模板

接下來我們要逐漸學(xué)習(xí)正則表達(dá)的內(nèi)容,這些內(nèi)容是非常有趣的!Interesting and Excited!

這里給出一個(gè)接下來會一直使用的示例模板,這個(gè)模板是這篇博客最重要的東西了,之后的內(nèi)容都會基于它進(jìn)行擴(kuò)展。所以,請好好理解它。

import re

# 需要進(jìn)行搜索或者匹配的文本
text = """I love you yesterday and today."""

# 正則表達(dá)式
regexp = r'love'


# 編譯(對正則表達(dá)式進(jìn)行編譯獲取 Pattern Object)
pattern = re.compile(regexp)

# 搜索
m = pattern.search(text)
if m:
    print("匹配對象: ", m)
    print("匹配的字符串: ", m.group())
    print("匹配的開始位置: ", m.start())
    print("匹配的結(jié)束位置: ", m.end())
    print("匹配位置的元組: ", m.span())
else:
    print("No match!")

# 替換
new_text = pattern.sub("hate", text)
print(new_text)

在這里插入圖片描述

注意: 正則表達(dá)式 regexp 在開始前會使用 r 前綴,這樣做的目的是為了避免在正則表達(dá)式中大量使用轉(zhuǎn)義字符,破壞了整體的可讀性。

Python 的正則表達(dá)式包含了很多非常易用的方法,但是這里我并不會過多介紹它們。我們會一直使用上面這種模式,因?yàn)槟切┮子玫姆椒ㄖ皇菍λ囊环N封裝,學(xué)習(xí)使用這種基本的方式自然就會其它的了。

匹配對象 可以獲取有關(guān)正則表達(dá)式的信息,它最重要的方法和屬性是:

方法/屬性目的
group()返回正則匹配的字符串
start()返回匹配的開始位置
end()返回匹配的結(jié)束位置
span()返回包含匹配 (start, end) 位置的元組

到此這篇關(guān)于淺談Python的正則表達(dá)式的文章就介紹到這了,更多相關(guān)Python正則表達(dá)式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中print和return的作用及區(qū)別解析

    Python中print和return的作用及區(qū)別解析

    print的作用是輸出數(shù)據(jù)到控制端,就是打印在你能看到的界面上。這篇文章給大家介紹Python中print和return的作用及區(qū)別解析,感興趣的朋友跟隨小編一起看看吧
    2019-05-05
  • 詳解python statistics模塊及函數(shù)用法

    詳解python statistics模塊及函數(shù)用法

    本節(jié)介紹 Python 中的另一個(gè)常用模塊 —— statistics模塊,該模塊提供了用于計(jì)算數(shù)字?jǐn)?shù)據(jù)的數(shù)理統(tǒng)計(jì)量的函數(shù)。這篇文章重點(diǎn)給大家介紹python statistics 模塊的一些用法,感興趣的朋友跟隨小編一起看看吧
    2019-10-10
  • 使用PYTHON接收多播數(shù)據(jù)的代碼

    使用PYTHON接收多播數(shù)據(jù)的代碼

    一個(gè)PYTHON腳本,能夠在LINUX上發(fā)送多播數(shù)據(jù)。其實(shí)編制起來也不算太麻煩。具體代碼如下
    2012-03-03
  • 通過cmd進(jìn)入python的步驟

    通過cmd進(jìn)入python的步驟

    在本篇文章里小編給大家整理了關(guān)于通過cmd進(jìn)入python的步驟和實(shí)例,需要的朋友們可以參考下。
    2020-06-06
  • 工程師必須了解的LRU緩存淘汰算法以及python實(shí)現(xiàn)過程

    工程師必須了解的LRU緩存淘汰算法以及python實(shí)現(xiàn)過程

    這篇文章主要介紹了工程師必須了解的LRU緩存淘汰算法以及python實(shí)現(xiàn)過程,幫助大家更好的學(xué)習(xí)算法數(shù)據(jù)結(jié)構(gòu),感興趣的朋友可以了解下
    2020-10-10
  • 教你用python編寫腳本實(shí)現(xiàn)自動簽到

    教你用python編寫腳本實(shí)現(xiàn)自動簽到

    這篇文章主要介紹了教你怎樣用python編寫腳本實(shí)現(xiàn)自動簽到,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • python 遍歷列表提取下標(biāo)和值的實(shí)例

    python 遍歷列表提取下標(biāo)和值的實(shí)例

    今天小編就為大家分享一篇python 遍歷列表提取下標(biāo)和值的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python 直接賦值和copy的區(qū)別詳解

    python 直接賦值和copy的區(qū)別詳解

    這篇文章主要介紹了python 直接賦值和copy的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python類中的魔法方法之 __slots__原理解析

    Python類中的魔法方法之 __slots__原理解析

    這篇文章主要介紹了Python類中的魔法方法之 __slots__詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python處理兩種分隔符的數(shù)據(jù)集方法

    python處理兩種分隔符的數(shù)據(jù)集方法

    今天小編就為大家分享一篇python處理兩種分隔符的數(shù)據(jù)集方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論