Python Regex 中的re.search()与re.findall()

正则表达式也称为有理表达式,是用于定义搜索模式的字符序列。它主要用于字符串的模式匹配或字符串匹配,如查找和替换操作。正则表达式是将模式与字符序列进行匹配的通用方式。

模块正则表达式用于指定与模式匹配的字符串集。为了理解 RE 类比,元字符用于 RE 模块的功能中。

共有 14 个元字符,,我们将在它们进入函数时讨论它们:


\ :  It is used for dropping the special meaning of character following it 
[] : It is used for representing a character class
^ : It is used for matching the beginning
$ :  It is used for matching the end
. : It is used for matching any character except newline
? : It is used for matching zero or one occurrence.
| : It means OR. This is used for matching with any of the characters separated by it.
* :  It is used for any number of occurrences (including 0 occurrences)
+ :  It is used for one or more occurrences
{} : It is used for indicating the number of occurrences of the preceding RE to match.
() : It is used for enclosing the group of REs.

re.search()方法

re.search() 方法用于返回 None(如果模式不匹配)或 re。MatchObject 包含字符串匹配部分的所有信息。此方法在第一次匹配后停止运行,因此这比提取数据更适合测试正则表达式。

示例:


import re   
# We will use the regular expression for matching the string of data 
# in the form of Weekday's name followed by day number 
regex = r"([A-Za-z]+) (\d+)"   
match = re.search(regex, "Day and Date of Today is Tuesday 12")     
if match != None: 
    print ("The String match at index % s, % s" % (match.start(), match.end()))
    print ("Full match of Pattern: % s" % (match.group(0)))    
    print ("The Weekday of Today is: % s" % (match.group(1)))    
    print ("The Date of Today is: % s" % (match.group(2)))   
else: 
    print ("The pattern of Python regex does not match with the string of Data imported.")

输出:

The String match at index 25, 35
Full match of Pattern: Tuesday 12
The Weekday of Today is: Tuesday
The Date of Today is: 12

说明:

在上面的代码中,我们导入了 re 模块,并使用正则表达式将数据字符串与模式匹配,即 Weekday 和 Date of Today。

表达式([A-Za-z]+)(\ d+)”应与导入的数据字符串匹配。然后,它将打印【25,35th】,因为它匹配第 25 个索引处的字符串,并作为第 35 个索引号结束。我们已经使用了组()功能来获取所有匹配,并捕获组来获取模式中所需的输出。这些组包含匹配的值。例如:

match.group(0) 将始终返回完全匹配的数据字符串,

match.group(1) 和 match.group(2) 将按照输入字符串中从左到右的顺序返回捕获组。 (match.group() 也表示 match.group(0))。如果数据字符串与模式匹配,将按正确的顺序打印;否则,它将使用 else 语句。

re.findall()方法

re.findall() 方法用于以字符串列表的形式获取数据字符串中模式的所有非重叠匹配作为返回。数据字符串将从左到右扫描,其匹配项将以与找到的顺序相同的顺序返回。

示例:


import re    
# The string of text where regular expression will be searched. 
string_1 = """Here are some student's ID, student A: 676
            student B: 564
            student C: 567
            student D: 112
            student E: 234"""    
# Setting the regular expression for finding digits in the string. 
regex_1 = "(\d+)"                
match_1 = re.findall(regex_1, string_1) 
print(match_1)

输出:

['676', '564', '567', '112', '234']

说明:

在上面的代码中,我们首先导入包含一些数字的文本字符串。然后我们设置正则表达式 “(\d+)” 来匹配字符串和模式。匹配将是文本字符串中不重叠的数据。导入 re.findall() 方法后,我们得到字符串的非重叠匹配数据作为输出。

结论

在本教程中,我们讨论了 Python regex 中的 re.search() 方法和 re.findall() 方法之间的区别,并给出了示例。


原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/241568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:40
下一篇 2024-12-12 12:40

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29

发表回复

登录后才能评论