Python 中不区分大小写的正则表达式

Namita Chaudhary 2023年10月8日
  1. Python 中不区分大小写的正则表达式
  2. 在 Python 中使用不区分大小写的 re.IGNORECASE 标志匹配字符串
  3. 在 Python 中使用不区分大小写的标记 (?i) 匹配字符串
  4. 结论
Python 中不区分大小写的正则表达式

正则表达式匹配 Python 文本中的特定字符串。他们形成一个搜索模式并检查该搜索模式是否存在于文本中。

在本文中,我们将研究 Python 中不区分大小写的正则表达式。进一步解释了在文本中执行不区分大小写搜索的不同方法。

Python 中不区分大小写的正则表达式

搜索模式由一系列字符组成,可以使用正则表达式规则指定。但是,要使用正则 Python 表达式,你首先需要导入 re 模块。

不区分大小写意味着文本在小写和大写中应该被认为是相等的。我们需要在日常生活中经常应用不区分大小写的搜索。

一个这样的例子是每当我们搜索某种商品时,比如。有关包的信息将显示在屏幕上。

但是,如果我们以小写字母搜索 bag 或使用混合大小写(例如 bAG),它也应该显示相同的结果。因此,我们需要将不同的大小写字母视为相同,以便在特定场景下轻松搜索结果。

因此,我们使用正则表达式来检查文本中不区分大小写的模式。

因此,让我们讨论如何使用正则表达式从文本中提取搜索模式。

在 Python 中使用不区分大小写的 re.IGNORECASE 标志匹配字符串

我们可以使用 Python 的 search()match()sub() 函数来查找我们的搜索模式是否存在于文本中并提取它们的确切位置。

这些函数有三个参数:

  • 要搜索的模式
  • 要在其中搜索模式的文本
  • flag

然而,这个 flag 参数是一个可选参数,但用于启用 Python 中的多个功能。

re.IGNORECASE 用作标志以启用文本中不区分大小写的搜索。它将认为字符 [A-Z] 与字符串的 [a-z] 相同。

让我们举个例子,在我们的代码中使用 re.IGNORECASE 作为标志。

import re

re.search("the", "ThE", re.IGNORECASE)

输出:

<re.Match object; span=(0, 3), match='ThE'>

同样,你可以在 match() 函数或 sub() 函数中将标志作为 re.IGNORECASE 传递,以在文本中搜索不区分大小写的字符串。

但是,如果要搜索文本中出现的所有字符串,则应使用 Python 的 re.findall() 函数。它将找到文本中存在的所有匹配字符串。

但是,你必须在参数中传递标志 re.IGNORECASE 才能在文本中查找不区分大小写的字符串。

让我们看看如何提取文本中出现的所有字符串。

import re

re.findall("the", "The sources informed the police of tHe thieves.", re.IGNORECASE)

输出:

['The', 'the', 'tHe']

上面使用的 re.IGNORECASE 标志也可以写成 re.I。这个 re.I 标志也用于在文本中搜索不区分大小写的模式。

让我们用一个例子来看看。

import re

re.findall("the", "The sources informed the police of tHe thieves.", re.I)

输出:

['The', 'the', 'tHe']

所有这些方法都存在于 Python 的 re 模块中。因此,re 模块必须在使用前导入程序中。

在 Python 中使用不区分大小写的标记 (?i) 匹配字符串

当你不想在 search() 或任何其他函数中添加标志参数以从文本中提取字符串时,我们使用由 (?i) 表示的不区分大小写的标记。

它应用于搜索模式之前的正则表达式函数,而无需指定额外的标志参数。

下面是在 search() 方法中使用不区分大小写标记 (?i) 的代码。

import re

re.search("(?i)TABLE", table)

输出:

<re.Match object; span=(0, 5), match='table'>

但是,你可以在更大的字符串中搜索模式,并使用 Python 中的 findall() 方法从字符串中查找所有多次出现的搜索模式。

下面是在 Python 中通过 findall() 方法使用不区分大小写标记 (?i) 的代码片段。

import re

text = "Let it rain, let it snow, let it do!"
re.findall("(?i)LEt", text)

输出:

['Let', 'let', 'let']

因此,上面的代码片段输出了文本中所有出现的搜索模式。将符号 (?i) 放在搜索模式之前。

结论

本文讨论了正则表达式以及如何使用它们在文本中查找不区分大小写的搜索模式。我们使用了两种方式。

首先是 re.IGNORECASE 标志,它作为参数传递给搜索函数,例如 search()match()findall() 等。你也可以使用 re.IGNORECASE 标志以使用你的字符串搜索不区分大小写的模式。

但是,第二种方法使用不区分大小写的标记 (?i),放置在搜索函数中的搜索模式之前。

我们可以使用这些方法在我们的文本中找到不区分大小写的模式。

相关文章 - Python Regex