python指令碼練習(2):使用正則表示式的三部曲

正則表示式

,簡稱regex,是文字模式的描述方法。你可以在google上搜索

regex

或者

regexp

獲得非常多的學習資料。這篇短文介紹在python指令碼中使用正則表示式的步驟:

1、匯入re模組

Python中所有正則表示式的函式都在re模組中,可以在互動式環境或者指令碼檔案中輸入以下程式碼。匯入該模組:

import re

2、建立正則表示式物件

re.compile()

傳入一個表示正則表示式的字串值,它將返回一個

Regex物件

。例如要建立一個Regex物件來匹配電話號碼模式,可以輸入以下程式碼:

phoneNumRegex = re。compile(r’\d\d\d-\d\d\d-\d\d\d\d’)

此時phoneNumRegex就包含了一個Regex物件

3、匹配Regex物件

Regex物件中的

search()方法

查詢傳入的字串,尋找該正則表示式的所有匹配。

phoneMatch = phoneNumRegex。search(’My number is415-555-4242’)

如果字串中沒有找到該正則表示式模式,則search()方法返回None。如果找到該模式則返回一個

Match物件

。Match有一個group()方法,返回被查詢的字串中實際匹配的文字:

print(‘Phone number found :’+phoneMatch。group())

python指令碼練習(2):使用正則表示式的三部曲

將期待的模式傳遞給

re.compile()

, 並將得到的

Regex物件

儲存在phoneNumRegex 中。然後我們在 phoneNumRegex上呼叫

search()

, 向它傳入想查詢的字串。查詢的結果儲存在變數phoneMatch中。模式在這個字串中找到,所以會返回一個

Match物件

。我們就可以在phoneMatch變數上呼叫

group()

, 返回匹配的結果, 顯示出完整的匹配,即415-555-4242。

import rephoneNumRegex = re。compile(r‘\d\d\d-\d\d\d-\d\d\d\d’)phoneMatch = phoneNumRegex。search(‘My number is415-555-4242’)print(‘Phone number found :’+phoneMatch。group())輸出://Phonenumber found :415-555-4242

python指令碼練習(2):使用正則表示式的三部曲

總結一下:

在 Python中使用正則表示式有幾個步驟,但每一步都相當簡單。

1.用

import re

匯入正則表示式模組。

2.用

re.compile()

函式建立一個

Regex物件

(記得使用原始字串)。

3.向 Regex物件的

search()方法

傳入想查詢的字串。它返回一個

Match 物件

4.呼叫 Match物件的

group()方法

,返回實際匹配文字的字串。