正则表达式(Regular Expression,简称RegEx)是一种强大的文本搜索工具,能够快速定位、匹配文本中符合特定规则的内容。在Python中,使用内置的re
模块就可以轻松实现各种复杂的文本匹配。
1. 正则表达式是什么?
简单来说,正则表达式就是一种特殊的文本搜索语法,它能帮助我们快速找到想要的文本内容。比如:匹配电话号码、邮箱地址、网址等。
2. 在Python中使用正则表达式
Python内置的re
模块专门用于处理正则表达式。
import re
2.1 简单示例
我们先用一个简单例子,看正则表达式如何工作:
import re
text = "我爱Python编程!"
match = re.search("Python", text)
if match:
print("找到匹配:", match.group())
else:
print("未找到匹配。")
运行结果:
找到匹配: Python
3. Python正则表达式常用函数
常见的re
模块函数包括:
re.findall()
:查找所有匹配项,返回一个列表。re.search()
:搜索字符串中第一个匹配项,返回Match对象。re.split()
:根据匹配的内容分割字符串,返回分割后的列表。re.sub()
:替换字符串中匹配的内容。
3.1 findall() 示例
找出文本中的所有数字:
import re
txt = "电话123-4567,备用电话987-6543"
nums = re.findall(r"\d+", txt)
print(nums) # ['123', '4567', '987', '6543']
3.2 split() 示例
用逗号或分号分割字符串:
import re
txt = "苹果,香蕉;橘子;梨"
fruits = re.split(r"[;,]", txt)
print(fruits) # ['苹果', '香蕉', '橘子', '梨']
3.3 sub() 示例
替换文本中的数字为#:
import re
txt = "密码123456"
result = re.sub(r"\d", "#", txt)
print(result) # 密码######
4. 正则表达式常用特殊符号
符号 | 作用说明 | 示例 |
---|---|---|
. | 匹配任意单个字符(除换行符) | a.b |
\d | 匹配数字(0-9) | \d+ |
\w | 匹配字母、数字、下划线 | \w+ |
\s | 匹配空格符 | \s+ |
^ | 匹配字符串开头 | ^hello |
$ | 匹配字符串结尾 | world$ |
[abc] | 匹配a、b或c中任意一个字符 | [a-z] |
* | 匹配0次或多次 | ab* |
+ | 匹配1次或多次 | ab+ |
? | 匹配0次或1次 | ab? |
{n} | 匹配n次 | a{3} |
| | 或(匹配多个条件之一) | a|b |
5. Match对象的方法
如果使用re.search()
找到匹配内容,会返回一个Match对象,它有几个常用方法:
.group()
:返回匹配的内容。.start()
:返回匹配开始的位置。.end()
:返回匹配结束的位置。.span()
:返回匹配内容的位置元组(start, end)。
import re
txt = "Python编程语言"
match = re.search("编程", txt)
print(match.group()) # 编程
print(match.start()) # 6
print(match.end()) # 8
print(match.span()) # (6, 8)
6. 总结
掌握Python正则表达式的基本用法,可以让你轻松应对文本查找、替换、验证等常见任务。多练习、多尝试,你很快就能熟练使用这个强大的工具。