正则表达式是一种强大的文本匹配工具,能够帮助我们在字符串中查找、替换、提取符合特定规则的内容。在Python中,我们可以使用re模块来操作正则表达式。而大括号{}在正则表达式中有着特殊的含义,用于指定匹配的次数或范围。
一、大括号的基本用法
1、固定次数匹配
import re
# 匹配连续3个数字
pattern = r'd{3}'
text = '1234567890'
result = re.findall(pattern, text)
print(result) # 输出:['123', '456', '789', '0']
2、范围匹配
import re
# 匹配2到4个数字
pattern = r'd{2,4}'
text = '1234567890'
result = re.findall(pattern, text)
print(result) # 输出:['12', '3456', '7890']
二、大括号的特殊用法
1、贪婪匹配和非贪婪匹配
import re
# 贪婪匹配
pattern1 = r'd{2,4}'
text = '1234567890'
result1 = re.findall(pattern1, text)
print(result1) # 输出:['1234', '5678', '90']
# 非贪婪匹配
pattern2 = r'd{2,4}?'
text = '1234567890'
result2 = re.findall(pattern2, text)
print(result2) # 输出:['12', '34', '56', '78', '90']
2、复杂匹配
import re
# 匹配至少3个连续的字母或数字
pattern = r'w{3,}'
text = 'ab12cd34ef'
result = re.findall(pattern, text)
print(result) # 输出:['ab12cd34ef']
三、大括号的应用示例
1、匹配手机号
import re
# 匹配11位数字的手机号
pattern = r'1d{10}'
text = '我的手机号码是12345678901'
result = re.findall(pattern, text)
print(result) # 输出:['12345678901']
2、匹配IPv4地址
import re
# 匹配IPv4地址
pattern = r'd{1,3}.d{1,3}.d{1,3}.d{1,3}'
text = '本机IP地址是192.168.1.1'
result = re.findall(pattern, text)
print(result) # 输出:['192.168.1.1']
3、匹配邮箱地址
import re
# 匹配邮箱地址
pattern = r'w+@w+.w+'
text = '我的邮箱是example@example.com'
result = re.findall(pattern, text)
print(result) # 输出:['example@example.com']
通过以上示例,我们可以看到大括号的灵活应用。它可以帮助我们快速捕获符合特定规则的内容,在文本处理、数据清洗、日志分析等场景中起到重要的作用。学好正则表达式,可以让我们提高工作效率,减少繁琐的手动操作。