Python 正規表示式組

Vaibhhav Khetarpal 2023年1月30日
  1. 在 Python 中使用 re.MatchObject.group() 函式提供確切的子組
  2. 在 Python 中使用 re.match() 查詢子組之間的匹配
Python 正規表示式組

正規表示式組函式或 re.MatchObject.group() 函式是一個函式,它通過將其與函式中傳遞的引數進行匹配來提供確切的子組作為結果。

本教程討論了正規表示式組函式以及如何在 Python 中實現它。

在 Python 中使用 re.MatchObject.group() 函式提供確切的子組

需要將 re 庫匯入 Python 程式碼才能使用此功能。re 庫是術語 Regular Expression 的縮寫,是用於處理 Python 中的正規表示式的庫。

為了便於理解,re.MatchObject.group() 函式的語法如下所述。

re.MatchObject.group([group])

該函式僅包含一個可選引數,該引數接受引數,用於與子組匹配。給定函式的預設值為零。

它可以返回三種可能的結果,它們是:

  • 如果採用有效引數,則返回與引數匹配的完整子組。
  • 如果組數作為引數被取入大於組數或負數,則輸出將是 IndexError
  • 如果找不到與引數匹配的模式,則會引發 AttributeError

以下示例程式碼展示瞭如何在 Python 中實現正規表示式組函式。

在 Python 中使用 re.match() 查詢子組之間的匹配

import re

matchobj1 = re.match(r"(\w+)@(\w+)\.(\w+)", "admin@delftstack.com")
print(matchobj1.group(1))
print(matchobj1.group(2))
print(matchobj1.group(3))

輸出:

admin
delftstack
com

在上面的程式碼中,re.match() 用於在給定文字 admin@delftstack.com 的子組中查詢匹配項。

上述程式碼中的 w 符號表示要考慮匹配英文字母表中的一個字母,而+ 符號表示搜尋的是連續字元。

這是過程成功完成並找到匹配項的情況。然而,情況並非總是如此。

下面的程式碼是一個 IndexError 有時如何發生的示例。

import re

matchobj1 = re.match(r"(\w+)@(\w+)\.(\w+)", "admin@delftstack.com")
print(matchobj1.group(5))

輸出:

Traceback (most recent call last):
  File "<string>", line 3, in <module>
IndexError: no such group
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相關文章 - Python Regex