正则表达式在Python中的应用实例
发布时间:2023-06-26 22:30:16
正则表达式是一种匹配字符串模式的工具,它可以用来检测一个字符串是否符合某种特定的规则。在 Python 中,正则表达式模块是 re,通过使用 re 模块,我们可以有效地处理文本和数据。
下面是正则表达式在 Python 中的一些应用实例:
1. 邮箱验证
邮箱地址的格式通常是 username@domain.com,其中 username 和 domain 是由字母、数字、下划线和点号组成的。我们可以使用正则表达式来验证一个邮箱地址是否合法。
import re
def validate_email(email):
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
return bool(re.match(pattern, email))
print(validate_email('example@email.com')) # True
print(validate_email('example-email.com')) # False
2. 手机号码验证
手机号码的格式通常是 11 位数字。我们可以使用正则表达式来验证一个手机号码是否合法。
import re
def validate_phone_number(phone):
pattern = r'^\d{11}$'
return bool(re.match(pattern, phone))
print(validate_phone_number('13812345678')) # True
print(validate_phone_number('1381234567')) # False
3. IP 地址验证
IP 地址的格式通常是四个数字,每个数字的取值范围是 0~255,数字之间用点号分隔开。我们可以使用正则表达式来验证一个 IP 地址是否合法。
import re
def validate_ip_address(ip):
pattern = r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'
if not re.match(pattern, ip):
return False
parts = ip.split('.')
for part in parts:
if int(part) > 255:
return False
return True
print(validate_ip_address('192.168.0.1')) # True
print(validate_ip_address('256.168.0.1')) # False
4. URL 地址解析
URL 地址通常由协议、主机名、端口号、路径和查询参数组成。我们可以使用正则表达式来解析一个 URL 地址并得到其中的各个部分。
import re
def parse_url(url):
pattern = r'^(https?):\/\/([\w.-]+)(:(\d+))?([\/\w.-]*)?(\?([\w=&]+))?$'
match = re.match(pattern, url)
if not match:
return None
protocol = match.group(1)
hostname = match.group(2)
port = match.group(4) or ('80' if protocol == 'http' else '443')
path = match.group(5) or '/'
query = match.group(7) or ''
return {
'protocol': protocol,
'hostname': hostname,
'port': port,
'path': path,
'query': query,
}
url = 'https://www.example.com:8080/foo/bar?name=hello&age=18'
print(parse_url(url)) # {'protocol': 'https', 'hostname': 'www.example.com', 'port': '8080', 'path': '/foo/bar', 'query': 'name=hello&age=18'}
在实际开发中,我们经常需要使用正则表达式来匹配和处理各种文本和数据,Python 的 re 模块提供了非常便捷和强大的工具来完成这个任务。
