在Python中,可以使用内置的re
模块来处理正则表达式。这个模块提供了多种函数来进行正则表达式匹配、搜索和替换等操作。以下是一些常用的函数及其示例:
re.match()
:从字符串的起始位置开始匹配一个模式,如果不是起始位置匹配成功的话,返回None。import re pattern = r"\d+" # 匹配一个或多个数字 string = "123abc" match = re.match(pattern, string) if match: print("Match found:", match.group()) # 输出: Match found: 123 else: print("No match")
re.search()
:扫描整个字符串并返回第一个成功的匹配。pattern = r"\d+" string = "abc123" match = re.search(pattern, string) if match: print("Search found:", match.group()) # 输出: Search found: 123 else: print("No match")
re.findall()
:在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。pattern = r"\d+" string = "abc123def456" matches = re.findall(pattern, string) print("Find all:", matches) # 输出: Find all: ['123', '456']
re.finditer()
:和findall()
类似,但返回的是一个迭代器,每个元素都是一个Match
对象。pattern = r"\d+" string = "abc123def456" for match in re.finditer(pattern, string): print("Found:", match.group()) # 输出: Found: 123, Found: 456
re.sub()
:用于替换字符串中的匹配项。pattern = r"\d+" replacement = "#" string = "abc123def456" new_string = re.sub(pattern, replacement, string) print("Substituted:", new_string) # 输出: Substituted: abc#def#
re.split()
:根据能够匹配的子串将字符串分割后返回列表。pattern = r"\d+" string = "abc123def456" parts = re.split(pattern, string) print("Split:", parts) # 输出: Split: ['abc', 'def', '']
在使用这些函数时,通常需要先导入re
模块。此外,正则表达式的模式字符串前加上r
表示原始字符串,这样可以避免在字符串中使用转义字符。