迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

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

作者:迹忆客 最近更新:2023/12/17 浏览次数:

正则表达式匹配 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),放置在搜索函数中的搜索模式之前。

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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中的平滑数据

发布时间:2023/12/20 浏览次数:101 分类:Python

本教程演示了如何在 Python 中平滑图形中的曲线。Python 在数据分析和可视化方面有着广泛的应用。

Python 中捕获键盘中断错误

发布时间:2023/12/20 浏览次数:187 分类:Python

本教程讨论如何在 Python 中捕获 KeyboardInterrupt。当用户使用 Ctrl + C 或 Ctrl + Z 手动尝试停止正在运行的程序时,或在 Jupyter Notebook 的情况下通过中断内核

在 Python 中实现低通滤波器

发布时间:2023/12/20 浏览次数:101 分类:Python

本教程讨论如何在 python 中创建低通滤波器。低通滤波器是信号处理基础中的一个术语,经常用于过滤信号以获得更准确的结果。

在 Python 中解析日志文件

发布时间:2023/12/20 浏览次数:180 分类:Python

了解如何在 Python 中解析日志文件。日志文件包含有关在软件系统或应用程序运行期间发生的事件的信息。这些事件包括错误、用户提出的请求、Bug 等。

在 Python 中声明一个没有值的变量

发布时间:2023/12/20 浏览次数:94 分类:Python

在本教程中,我们将讨论如何在 Python 中声明一个变量而不赋值。变量是保留的内存位置,可以存储一些值。换句话说,Python 程序中的变量将数据提供给计算机以处理操作。

在 Python 中定义类全局变量

发布时间:2023/12/20 浏览次数:77 分类:Python

本教程演示了如何定义类全局变量。全局变量是一个可见变量,可以在程序的每个部分使用。全局变量也不在任何函数或方法中定义。

在 Python 中的 Lambda 函数中传递多个参数

发布时间:2023/12/20 浏览次数:133 分类:Python

了解如何在 Python 中的 Lambda 函数中传递多个参数。lambda 形式或 lambda 表达式是 Python 中的匿名函数。它们是可以使用 Python 中保留的 lambda 关键字创建的内联函数。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便