分享一些Python 常见的正则表达式示例
2025-03-29 01:21:39 293 分享链接 开发笔记 python
正则表达式解释
r"(本章未完.*":r 表示原始字符串,避免转义字符的影响。(本章未完 是要匹配的起始文本,.* 表示匹配任意数量的任意字符。
r"oread8":匹配包含 “oread8” 的文本。正则表达式是一种强大的文本匹配工具,在 Python 里可以借助 re 模块使用。下面为你分享一些常见的正则表达式示例以及对应的 Python 代码:1. 匹配邮箱地址
邮箱地址通常由用户名、域名和顶级域名组成,格式为 username@domain.com。
import re
email_pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
email = 'example@example.com'
if re.match(email_pattern, email):
print(f'{email} 是有效的邮箱地址')
else:
print(f'{email} 不是有效的邮箱地址')
解释:
^:匹配字符串的开始。[a-zA-Z0-9_.+-]+:匹配一个或多个字母、数字、下划线、点、加号或减号。@:匹配邮箱地址中的@符号。[a-zA-Z0-9-]+:匹配一个或多个字母、数字或减号。\.:匹配邮箱地址中的点。[a-zA-Z0-9-.]+:匹配一个或多个字母、数字、减号或点。$:匹配字符串的结束。
2. 匹配手机号码
在中国,手机号码通常是 11 位数字,以 1 开头。
import re
phone_pattern = r'^1[3-9]\d{9}$'
phone = '13800138000'
if re.match(phone_pattern, phone):
print(f'{phone} 是有效的手机号码')
else:
print(f'{phone} 不是有效的手机号码')
解释:
^:匹配字符串的开始。1:匹配手机号码的第一位数字。[3-9]:匹配手机号码的第二位数字,范围是 3 到 9。\d{9}:匹配 9 个数字。$:匹配字符串的结束。
3. 匹配 HTML 标签
HTML 标签以 < 开头,以 > 结尾。
import re
html_pattern = r'<[^>]+>'
html = '<p>这是一个段落</p>'
tags = re.findall(html_pattern, html)
print(f'匹配到的 HTML 标签:{tags}')
解释:
<:匹配 HTML 标签的开始符号。[^>]+:匹配一个或多个非>字符。>:匹配 HTML 标签的结束符号。
4. 匹配日期(格式:YYYY-MM-DD)
日期通常由年、月、日组成,格式为 YYYY-MM-DD。
import re
date_pattern = r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$'
date = '2024-10-01'
if re.match(date_pattern, date):
print(f'{date} 是有效的日期')
else:
print(f'{date} 不是有效的日期')
解释:
^:匹配字符串的开始。\d{4}:匹配 4 个数字,表示年份。-:匹配日期中的连字符。(0[1-9]|1[0-2]):匹配月份,范围是 01 到 12。-:匹配日期中的连字符。(0[1-9]|[12][0-9]|3[01]):匹配日期,范围是 01 到 31。$:匹配字符串的结束。
5. 匹配 IP 地址
IP 地址由四个数字组成,每个数字范围是 0 到 255,用点分隔。
import re
ip_pattern = r'^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
ip = '192.168.1.1'
if re.match(ip_pattern, ip):
print(f'{ip} 是有效的 IP 地址')
else:
print(f'{ip} 不是有效的 IP 地址')
解释:
^:匹配字符串的开始。(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):匹配一个 0 到 255 之间的数字。\.:匹配 IP 地址中的点。{3}:重复前面的模式 3 次。(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):匹配最后一个 0 到 255 之间的数字。$:匹配字符串的结束。
这些示例能帮你理解正则表达式的基本用法,你可以根据具体需求对正则表达式进行调整。

下一篇:必应手机壁纸常见的尺寸有哪些?
最近更新
- 2025-09-22 01:46
- 可以直接在content.js里面写一个函数获取blob数据实现自定义下载吗?
- 2025-09-22 00:17
- background.js中可通过注入脚本的方法实现获取blobUrl实现自定义下载
- 2025-09-21 17:45
- 通过MutationObserver 开发chrome浏览器扩展的实例
- 2025-09-21 17:23
- MutationObserver实例中mutation.type为childList时addedNodes节点的遍历方法。
- 2025-09-21 17:21
- MutationObserver实例中mutation.type为childList时addedNodes节点的筛选方法。
- 2025-09-21 17:09
- MutationObserver实例中mutation.type为childList时addedNodes节点具体的方法与属性。
- 2025-09-21 16:56
- MutationObserver实例中mutation.type突变类型为childList时有哪些属性、方法?
- 2025-09-21 16:46
- MutationObserver实例中mutation三种不同突变类型的属性与方法?
- 2025-09-21 16:34
- MutationObserver实例中mutation.type突变类型为attributes时有哪些属性、方法?
- 2025-09-15 18:42
- 用豆包图像生成的功能批量创作小说推文的提示词