Python 正则表达式 - re.search() 与 re.findall()
在 Python 中,正则表达式是一种强大的工具,用于在字符串中匹配和搜索特定的模式。re.search() 和 re.findall() 是两个常用的函数,用于在字符串中查找匹配的模式。re.search() 函数用于在字符串中查找第一个匹配的模式,并返回一个匹配对象。如果找到了匹配的模式,则可以使用匹配对象的方法和属性来进一步处理数据。re.findall() 函数用于在字符串中查找所有匹配的模式,并返回一个包含所有匹配结果的列表。这个函数可以一次性找到所有匹配的模式,方便后续的处理和分析。下面是一个简单的例子,演示了如何使用 re.search() 和 re.findall() 函数:pythonimport re# 使用 re.search() 查找第一个匹配的模式text = "Hello, World! This is a sample text."pattern = r"\b\w+"match = re.search(pattern, text)if match: print("First match found:", match.group())# 使用 re.findall() 查找所有匹配的模式matches = re.findall(pattern, text)print("All matches found:", matches)输出结果如下:First match found: HelloAll matches found: ['Hello', 'World', 'This', 'is', 'a', 'sample', 'text']在上面的例子中,我们使用 re.search() 函数查找第一个以字母开头的单词,并通过匹配对象的 group() 方法获取匹配的结果。同时,我们使用 re.findall() 函数查找所有以字母开头的单词,并将结果存储在一个列表中。正则表达式的模式可以根据需求进行调整,以匹配不同的文本模式。这些模式可以包含特殊字符和元字符,用于表示不同类型的字符或字符集合。接下来,我们将进一步探索正则表达式的应用,并介绍一些常用的模式和技巧。常用的正则表达式模式1. 匹配数字如果想要匹配字符串中的数字,可以使用 \d 表示任意一个数字。例如,\d+ 可以匹配一个或多个数字。
pythonimport retext = "I have 3 apples and 5 oranges."pattern = r"\d+"matches = re.findall(pattern, text)print("Numbers found:", matches)输出结果如下:Numbers found: ['3', '5']在上面的例子中,我们使用 \d+ 模式匹配了字符串中的数字,并使用 re.findall() 函数找到了所有匹配的结果。2. 匹配字母和数字如果想要匹配字符串中的字母和数字,可以使用 \w 表示任意一个字母或数字。例如,\w+ 可以匹配一个或多个字母或数字。
pythonimport retext = "Hello, World! This is a sample text."pattern = r"\w+"matches = re.findall(pattern, text)print("Alphanumerics found:", matches)输出结果如下:Alphanumerics found: ['Hello', 'World', 'This', 'is', 'a', 'sample', 'text']在上面的例子中,我们使用 \w+ 模式匹配了字符串中的字母和数字,并使用 re.findall() 函数找到了所有匹配的结果。3. 匹配邮箱地址如果想要匹配字符串中的邮箱地址,可以使用特定的模式来实现。例如,\w+@\w+\.\w+ 可以匹配一个邮箱地址。
pythonimport retext = "My email address is example@example.com."pattern = r"\w+@\w+\.\w+"match = re.search(pattern, text)if match: print("Email address found:", match.group())输出结果如下:Email address found: example@example.com在上面的例子中,我们使用 \w+@\w+\.\w+ 模式匹配了字符串中的邮箱地址,并使用 re.search() 函数找到了第一个匹配的结果。通过使用 Python 的正则表达式模块 re,我们可以方便地在字符串中查找和匹配特定的模式。re.search() 和 re.findall() 是两个常用的函数,分别用于查找第一个匹配的模式和找到所有匹配的模式。正则表达式中的模式可以根据需求进行调整,以匹配不同的文本模式。常见的模式包括匹配数字、字母和数字、邮箱地址等。使用正则表达式可以帮助我们更加灵活和高效地处理文本数据,提取和分析感兴趣的信息。熟练掌握正则表达式的使用,对于处理文本数据的任务将大有裨益。参考资料:- Python 正则表达式官方文档:https://docs.python.org/3/library/re.html