91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python的正則表達式怎么實現

發布時間:2023-04-21 17:29:29 來源:億速云 閱讀:111 作者:iii 欄目:開發技術

這篇文章主要介紹了Python的正則表達式怎么實現的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python的正則表達式怎么實現文章都會有所收獲,下面我們一起來看看吧。

Python 正則表達式

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

因為正則表達式是實踐中使用廣泛的工具,所以脫離語言的學習我認為是不靠譜的。

正則表達式的函數介紹

正則表達式主要API關系圖

Python的正則表達式怎么實現

這個圖是我個人總結的,我覺得基本上把這里的函數的關系弄清楚了,它們的作用是:

  • match 從文本的開頭匹配正則表達式,返回匹配的對象,沒有就返回 None

  • search 在整個文本中匹配正則表達式,返回第一個匹配的對象,沒有就返回 None。

  • sub 利用正則表達式進行文本替換(正則表達式的功能:搜索和替換)

  • findall 從整個文本中匹配正則表達式,以列表的形式返回所有匹配的結果。

  • finditer 從整個文本中匹配正則表達式,以迭代器的形式返回所有匹配的結果。

  • split 利用正則表達式切分文本

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

re.compile 函數

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

語法:

re.compile(pattern[, flags])
  • pattern: 一個字符串形式的正則表達式

  • flags 可選,表示匹配模式,比如忽略大小寫,多行模式等,具體參數為:

    • re.I 忽略大小寫

    • re.L 多行模式

    • re.S 即為 '.' 并且包括換行符在內的任意字符('.' 不包括換行符)

    • re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依賴 Unicode 字符屬性數據庫

    • re.X 為了增加可讀性,忽略空格和 ‘#’ 后面的注釋

示例:查找字符串中的所有數字

import re

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

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


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


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

學習模板

接下來我們要逐漸學習正則表達的內容,這些內容是非常有趣的!Interesting and Excited!

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

import re

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

# 正則表達式
regexp = r'love'


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

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

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

Python的正則表達式怎么實現

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

Python 的正則表達式包含了很多非常易用的方法,但是這里我并不會過多介紹它們。我們會一直使用上面這種模式,因為那些易用的方法只是對它的一種封裝,學習使用這種基本的方式自然就會其它的了。

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

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

關于“Python的正則表達式怎么實現”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python的正則表達式怎么實現”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新密市| 汶川县| 金湖县| 新津县| 门源| 芷江| 巴南区| 延寿县| 钟山县| 丰县| 江津市| 公主岭市| 康定县| 襄汾县| 柳江县| 城市| 乾安县| 宾川县| 公主岭市| 临澧县| 巴塘县| 福泉市| 金昌市| 绥滨县| 峡江县| 松阳县| 柘城县| 仁化县| 冕宁县| 绩溪县| 和林格尔县| 阜南县| 玉龙| 淮南市| 新河县| 玉树县| 纳雍县| 芦溪县| 古浪县| 黄浦区| 武山县|