正则表达式(Regular Expression)是一种强大的文本处理工具,在Python中通过re
模块实现。掌握正则表达式,可以让我们轻松地处理字符串,进行模式匹配、查找、替换等操作。本文将详细介绍Python中正则表达式的关键格式符,帮助读者解锁数据处理的秘密。
1. 基本格式符
正则表达式的核心是格式符,它们定义了我们要匹配的文本模式。以下是一些常见的格式符:
1.1 字符匹配
.
:匹配除换行符以外的任意字符。[]
:匹配括号内的任意一个字符(字符类)。[^]
:匹配不在括号内的任意一个字符(否定字符类)。
import re
# 匹配包含任意字符的字符串
pattern = r'.*'
text = "这是一个测试字符串。"
match = re.match(pattern, text)
print(match.group()) # 输出:这是一个测试字符串。
# 匹配指定字符
pattern = r'[a-z]'
text = "这是一个测试字符串。"
match = re.match(pattern, text)
print(match.group()) # 输出:这
# 匹配不在指定字符集中的字符
pattern = r'[^a-z]'
text = "这是一个测试字符串。"
match = re.match(pattern, text)
print(match.group()) # 输出:一
1.2 定位符
^
:匹配字符串的开头。$
:匹配字符串的结尾。\b
:匹配单词边界。
# 匹配字符串开头
pattern = r'^测试'
text = "测试这是一个测试字符串。"
match = re.match(pattern, text)
print(match.group()) # 输出:测试
# 匹配字符串结尾
pattern = r'字符串$'
text = "这是一个测试字符串。"
match = re.match(pattern, text)
print(match.group()) # 输出:字符串
# 匹配单词边界
pattern = r'\b测试\b'
text = "这是一个测试字符串。"
match = re.match(pattern, text)
print(match.group()) # 输出:测试
2. 量词
量词用于指定匹配的次数。
*
:匹配前面的子表达式零次或多次。+
:匹配前面的子表达式一次或多次。?
:匹配前面的子表达式零次或一次。{n}
:匹配前面的子表达式恰好n次。{n,}
:匹配前面的子表达式至少n次。{n,m}
:匹配前面的子表达式至少n次,但不超过m次。
# 匹配任意字符(0次或多次)
pattern = r'.*'
text = "这是一个测试字符串。"
match = re.match(pattern, text)
print(match.group()) # 输出:这是一个测试字符串。
# 匹配一个字符
pattern = r'.+'
text = "这是一个测试字符串。"
match = re.match(pattern, text)
print(match.group()) # 输出:这是一个
# 匹配0个或多个数字
pattern = r'\d*'
text = "这是一个测试字符串123。"
match = re.match(pattern, text)
print(match.group()) # 输出:123
3. 分组和引用
()
:创建分组,可以用于捕获匹配的子表达式。\1
:引用第一个分组匹配的文本。
# 捕获分组
pattern = r'(\d+)\s+(\d+)'
text = "123 456"
match = re.match(pattern, text)
print(match.group(1)) # 输出:123
print(match.group(2)) # 输出:456
# 引用分组
pattern = r'(\d+)\s+(\d+)'
text = "123 456"
match = re.match(pattern, text)
print(match.group(0)) # 输出:123 456
print(match.group(1)) # 输出:123
print(match.group(2)) # 输出:456
通过以上介绍,相信读者已经对Python正则表达式的关键格式符有了初步的了解。正则表达式在数据处理中有着广泛的应用,如字符串匹配、查找、替换、分割等。熟练掌握正则表达式,将大大提高数据处理效率。