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