正则表达式是文本匹配的强大工具,无论是数据清洗、文本匹配、爬虫、日志分析等场景,正则表达式都能发挥出极大的作用。Python作为一门强大的编程语言,自然也支持正则表达式。本篇文章将为大家介绍Python正则表达式的10个实用案例,帮助大家快速掌握Python的正则表达式。
1. 匹配邮箱
匹配邮箱是日常中常使用的功能,可以通过使用“\w+@\w+\.com”来匹配常见的邮箱格式。代码如下所示:
import re
pattern = r'\w+@\w+\.(com|cn)'
string = 'example@gmail.com, example@163.com, example@qq.com'
result = re.findall(pattern, string)
print(result)
2. 匹配手机号
有效的手机号格式可能会有一些变化,但可以通过使用“1[3456789]\d{9}”匹配大部分有效的手机号码。代码如下所示:
import re
pattern = r'1[3456789]\d{9}'
string = '我的号码是13912345678,收到的电话是15800008888'
result = re.findall(pattern, string)
print(result)
3. 匹配IP地址
IP地址是网络中非常重要的元素,通过使用“(\d{1,3}\.){3}\d{1,3}”匹配常见的IPv4地址。代码如下所示:
import re
pattern = r'(\d{1,3}\.){3}\d{1,3}'
string = '我的IP地址是192.168.1.1,公司服务器的IP地址是10.0.0.1'
result = re.findall(pattern, string)
print(result)
4. 匹配URL地址
URL也是网络中非常重要的元素,可以通过使用“(http|https)://[^\s]*”匹配常见的URL地址。代码如下所示:
import re
pattern = r'(http|https)://[^\s]*'
string = '这是一个URL地址:http://www.example.com'
result = re.findall(pattern, string)
print(result)
5. 匹配日期
日期格式有很多种,但可以通过使用“\d{4}-\d{2}-\d{2}”匹配常见的年月日格式。代码如下所示:
import re
pattern = r'\d{4}-\d{2}-\d{2}'
string = '今天是2021-01-01,明天是2021-01-02'
result = re.findall(pattern, string)
print(result)
6. 匹配中文
中文是一种特殊的字符,可以通过使用“[\u4e00-\u9fa5]”匹配中文字符。代码如下所示:
import re
pattern = r'[\u4e00-\u9fa5]+'
string = '这是一句中文,包含了一些特殊字符:括号()和句号。'
result = re.findall(pattern, string)
print(result)
7. 匹配图片链接
匹配图片链接可以通过使用“”来匹配HTML中的图片链接。代码如下所示:
import re
pattern = r''
string = '
'
result = re.findall(pattern, string)
print(result)
8. 匹配HTML标签
匹配HTML标签可以通过使用“<(\w+)>.*?\1>”来匹配HTML中的标签。代码如下所示:
import re
pattern = r'<(\w+)>.*?\1>'
string = '这是标题
这是一段正文
'
result = re.findall(pattern, string)
print(result)
9. 匹配连续出现的字符串
匹配连续出现的字符串可以通过使用“(\w)\1+”来匹配连续出现的字母或数字。代码如下所示:
import re
pattern = r'(\w)\1+'
string = 'hello world, 1233333, AAABBBCCC'
result = re.findall(pattern, string)
print(result)
10. 匹配手机号和身份证号
匹配手机号和身份证号可以通过使用“^1[3456789]\d{9}$|^(\d{15}$|\d{18}$|\d{17}(\d|X|x))$”来匹配常见的手机号和身份证号。代码如下所示:
import re
pattern = r'^1[3456789]\d{9}$|^(\d{15}$|\d{18}$|\d{17}(\d|X|x))$'
string = '我的号码是13912345678,身份证号是110101199001010001'
result = re.findall(pattern, string)
print(result)
以上就是10个实用的Python正则表达式案例。掌握了这些技能后,相信在数据清洗、文本匹配、爬虫、日志分析等场景中会更加得心应手。