Python 寻找匹配模式

  • Post category:Python

Python 中用于寻找匹配模式的常用库是 re,re 库提供了一个强大且灵活的 API,可以用于字符串的匹配、查找和替换等操作。下面是 Python 中使用 re 库进行字符串匹配的方法:

re.search()

re.search() 方法通过正则表达式在字符串中寻找匹配模式,如果找到了匹配结果,则返回 MatchObject 对象,否则返回 None。

示例:

import re

# 在字符串中寻找匹配的子串
result = re.search(r'apple', 'I have an apple')
print(result)  # <re.Match object; span=(11, 16), match='apple'>

# 没有匹配的结果时返回 None
result = re.search(r'banana', 'I have an apple')
print(result)  # None

re.match()

re.match() 方法也是通过正则表达式在字符串中寻找匹配模式,但它只在字符串的开头进行匹配,如果找到了匹配结果,则返回 MatchObject 对象,否则返回 None。

示例:

import re

# 在字符串开头寻找匹配的子串
result = re.match(r'I', 'I have an apple')
print(result)  # <re.Match object; span=(0, 1), match='I'>

# 开头不匹配时返回 None
result = re.match(r'have', 'I have an apple')
print(result)  # None

re.findall()

re.findall() 方法可以在字符串中查找所有匹配的子串,并返回包含所有匹配结果的列表。

示例:

import re

# 查找所有匹配的子串并返回一个列表
result = re.findall(r'\d+', 'I have 2 apples and 3 oranges')
print(result)  # ['2', '3']

# 找不到匹配的结果时返回一个空列表
result = re.findall(r'\d+', 'I have no fruit')
print(result)  # []

re.sub()

re.sub() 方法可以用于在字符串中寻找匹配的子串并进行替换操作。它接受三个参数,第一个参数是正则表达式,第二个参数是要替换的字符串,第三个参数是要进行替换操作的原字符串。

示例:

import re

# 将字符串中所有匹配的子串替换为指定的字符串
result = re.sub(r'\d+', '10', 'I have 2 apples and 3 oranges')
print(result)  # I have 10 apples and 10 oranges

# 如果无法找到匹配的字符串,则返回原字符串
result = re.sub(r'\d+', '10', 'I have no fruit')
print(result)  # I have no fruit

以上就是在 Python 中使用 re 库进行字符串匹配的方法和示例。其中包括了 re.search()、re.match()、re.findall() 以及 re.sub() 四种常用方法,可以满足大部分字符串匹配需求。