引言
正则表达式是一种强大的文本处理工具,广泛应用于数据解析、文本校验等领域。通过正则表达式,我们可以高效地处理字符串,提取信息,验证格式等。本文将通过一系列实战案例,帮助你轻松驾驭正则表达式,提升数据处理能力。
正则表达式基础
1. 正则表达式概念
正则表达式是一种用来描述字符模式的规则,它可以用来验证字符串是否符合规则,或者从一段文本中提取特定的子字符串。
2. 基本语法
.
:匹配任意字符(除了换行符)。[ ]
:匹配字符集内的任意一个字符。[^ ]
:匹配不在字符集内的任意一个字符。()
:分组,用于指定匹配的子串。*
:匹配前面的子表达式零次或多次。+
:匹配前面的子表达式一次或多次。?
:匹配前面的子表达式零次或一次,或指非贪婪匹配。{n}
:匹配前面的子表达式恰好n次。{n,}
:匹配前面的子表达式至少n次。{n,m}
:匹配前面的子表达式至少n次,但不超过m次。
3. 元字符
\d
:匹配数字,等价于[0-9]
。\D
:匹配非数字,等价于[^0-9]
。\s
:匹配空白字符,等价于[ \f\n\r\t\v]
。\S
:匹配非空白字符,等价于[^ \f\n\r\t\v]
。\w
:匹配字母、数字或下划线,等价于[a-zA-Z0-9_]
。\W
:匹配非字母、数字或下划线,等价于[^a-zA-Z0-9_]
。
实战案例
1. 验证手机号码
import re
phone_number = "13812345678"
pattern = r"1[3-9]\d{9}"
if re.match(pattern, phone_number):
print("手机号码格式正确")
else:
print("手机号码格式错误")
2. 验证邮箱地址
import re
email = "user@example.com"
pattern = r"[a-zA-Z0-9.-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+"
if re.match(pattern, email):
print("邮箱地址格式正确")
else:
print("邮箱地址格式错误")
3. 提取网页标题
import re
html_content = """
<title>HTML内容解析与验证:正则表达式实战指南</title>
<h1>正则表达式基础</h1>
<p>正则表达式是一种用于处理文本的强大工具,它可以用来匹配、查找和替换文本模式。</p>
"""
title_pattern = r'<title>(.*?)</title>'
title = re.search(title_pattern, html_content)
if title:
print("网页标题:", title.group(1))
4. 验证身份证号码
import re
id_number = "11010519491231002X"
pattern = r"^\d{17}[\dXx]$"
if re.match(pattern, id_number):
print("身份证号码格式正确")
else:
print("身份证号码格式错误")
5. 验证密码强度
import re
password = "password123"
pattern = r"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"
if re.match(pattern, password):
print("密码强度合格")
else:
print("密码强度不合格")
总结
通过以上实战案例,我们可以看到正则表达式在数据解析和校验方面的强大能力。熟练掌握正则表达式,将大大提高我们的数据处理效率。