分享一些Python 常见的正则表达式示例
2025-03-29 01:21:39 24 分享链接 开发笔记 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-04-03 16:57
- JavaScript 的 MutationObserver API基础解释
- 2025-03-31 17:51
- 4:3 与 9:16 比例的壁纸,常见的分辨率有以下几种:
- 2025-03-29 04:44
- BeautifulSoup 对象的一些常见方法
- 2025-03-29 04:02
- 除了BingWallpaper,还有哪些库可以获取必应历史壁纸?
- 2025-03-29 03:17
- 必应手机壁纸常见的尺寸有哪些?
- 2025-03-29 00:54
- 分享一些Python 常见的正则表达式示例
- 2025-03-23 17:31
- 如何将我用python写的小说格式化工具打包成exe文件?
- 2025-03-23 17:24
- 我用python写的一个小说格式化工具(去除中英文标点符号)
- 2025-03-23 17:21
- 我的第一个python小程序(替换文本中的标点符号为换行符)
- 2025-03-18 00:31
- 豆包版做小说推文将小说内容改写成第一人称视角