首頁 >後端開發 >Python教學 >Python的正規表示式怎麼實現

Python的正規表示式怎麼實現

WBOY
WBOY轉載
2023-05-11 17:40:061479瀏覽

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的正規表示式怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除