一、正则表达式简介
正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它可以对字符串进行复杂的匹配、查找和替换操作。Python中的re
模块提供了对正则表达式的支持,使得我们可以轻松地在Python代码中使用正则表达式。
二、re模块常用方法
1. re.match(pattern, string, flags=0)
re.match()
函数尝试从字符串的起始位置匹配一个正则表达式。如果匹配成功,返回一个匹配对象;如果不匹配,则返回None
。
import re
pattern = r'd'
string = '123abc'
result = re.match(pattern, string)
if result:
print(result.group()) # 输出: 123
else:
print("No match found!")
2. re.search(pattern, string, flags=0)
re.search()
函数用于扫描整个字符串,找到第一个匹配的子串。如果找到匹配,返回匹配对象,否则返回None
。
import re
pattern = r'd'
string = 'abc123xyz'
result = re.search(pattern, string)
if result:
print(result.group()) # 输出: d
else:
print("No match found!")
3. re.findall(pattern, string, flags=0)
re.findall()
函数返回字符串中所有非重叠的与模式匹配的字符串列表。
import re
pattern = r'\d+' # 匹配一个或多个数字
string = 'The price is 100 dollars.'
result = re.findall(pattern, string)
print(result) # 输出: ['100', '100']
4. re.finditer(pattern, string, flags=0)
re.finditer()
函数查找字符串中所有非重叠的模式,返回一个迭代器,包含所有匹配对象。
import re
pattern = r'\d+' # 匹配一个或多个数字
string = 'The price is 100 dollars and 200 euros.'
for match in re.finditer(pattern, string):
print(match.group()) # 输出: 100, 200
5. re.sub(pattern, repl, string, count=0, flags=0)
re.sub()
函数用指定的替换字符串repl
替换所有与模式匹配的非重叠部分,并返回替换后的字符串。
import re
pattern = r'\d+' # 匹配一个或多个数字
repl = 'X'
string = 'The price is 100 dollars.'
result = re.sub(pattern, repl, string)
print(result) # 输出: The price is XX dollars.
6. re.split(pattern, string, maxsplit=0, flags=0)
re.split()
函数使用模式作为分隔符,将字符串分割成列表。
import re
pattern = r'\s+' # 匹配一个或多个空白字符
string = 'Hello, World!'
result = re.split(pattern, string)
print(result) # 输出: ['Hello', 'World!']
三、正则表达式的元字符
正则表达式中的元字符具有特殊意义,用于定义匹配模式。以下是一些常用的元字符:
.
:匹配除换行符外的任意单个字符。[]
:匹配括号内的任意一个字符。()
:分组,用于提取匹配的子串。*
:匹配前一个字符0次或多次。+
:匹配前一个字符1次或多次。?
:匹配前一个字符0次或1次。^
:匹配字符串开头。$
:匹配字符串结尾。
四、总结
掌握Python re
模块和正则表达式,可以帮助我们高效地处理字符串,提高代码的可读性和可维护性。通过本文的介绍,相信你已经对正则表达式有了更深入的了解。在今后的工作中,可以尝试将正则表达式应用到各种场景中,提高工作效率。