Python入门篇【正则表达式】

Python【正则表达式】


文章目录


提示:以下是本篇文章正文内容,下面案例可供参考

一、基础匹配

正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述、匹配某个句法规则的字符串,常被用来检索、替换那些符合某个模式(规则)的文本。->用正则表达式来判断字符串是否符合匹配规则。

  • match():从头开始匹配,匹配成功返回匹配对象,不成功返回None【左开右闭】
  • search():搜索整个字符串,从前向后搜索,找到就停止,不会再向后搜索
  • findall():全局搜索,以列表形式返回
  • span():字符串位置
  • group():把匹配到的【完整字符串】提取出来
python 复制代码
import re

s = 'python demo341@python2342`%(*&$(ima!!dsaf45612344'  # 定义字符串

r1 = re.match('python', s)  # 从头检索,不匹配返回None
r2 = re.search('python', s)  # 进行搜索,识别到第一个,不在进行后续识别
r3 = re.findall('python', s)  # 列表形式返回指定字符串
print(r1)
print(r1.span())  # 展示字符串所在位置[m,n-1][左闭右开]
print(r1.group())  # 把匹配到的【完整字符串】提取出来
print(r2)
print(r3)

二、元字符匹配

2.1 元字符匹配

python 复制代码
import re

s = 'python demo341@python2342`%(*&$(ima!!dsaACf45612344'  # 定义字符串
r4 = re.findall(r'\d', s)  # 找出字符串中全部的数字,r表示避免被识别为转义字符!!!
r5 = re.findall(r'\W', s)  # 找出特殊字符
r6 = re.findall(r'[a-zA-Z0-9]', s)  # 找出全部的英文字母和数字,可以设置范围,例如只想找5-9的数字,则设置为[5-9]
print(r4)
print(r5)
print(r6)

python 复制代码
import re

# 这就是我们一起打磨的终极正则!
email_pattern = r'^[a-zA-Z0-9]+([_\-\.][a-zA-Z0-9]+)*@(qq|163|gmail)\.(com|cn)'

# 测试函数
def check_email(email):
    if re.fullmatch(email_pattern, email):
        return f"✅ {email} ------ 合法邮箱"
    else:
        return f"❌ {email} ------ 非法邮箱"

# 开始测试
print(check_email("zhang.san@qq.com"))       # 合法
print(check_email("li_si123@163.cn"))       # 合法
print(check_email("wang-wu@gmail.com"))     # 合法
print(check_email("zhao.liu@sina.com"))     # 非法(服务商不对)
print(check_email("-zhang@qq.com"))          # 非法(符号开头)
print(check_email("zhang..san@qq.com"))      # 非法(连续符号)
print(check_email("zhang@qq.com123"))       # 非法(后缀不对)

相关推荐
小林ixn1 分钟前
从拼多多手机号验证到模板引擎:深入正则表达式与 JS 字符串处理
开发语言·javascript·正则表达式
站大爷IP17 分钟前
那天,我的Python函数死活改不了全局变量
python
右耳朵猫AI17 分钟前
Python周刊2026W22 | Django 6.1 Alpha 1发布、Nuitka 4.1发布、PEP 831终稿、PEP 808已接受
开发语言·python·django
Wonderful U23 分钟前
Python+Django实战|美食菜谱分享与食材采购一体化系统:食谱发布收藏、图文教程、食材商城、购物车、订单管理、美食点评、智能食谱推荐
python·django·美食
xieliyu.30 分钟前
MySQL 全套入门笔记:基础、库操作、数据类型
数据库·笔记·mysql
秦jh_34 分钟前
【LangChain核心组件】少样本提示(示例选择器)
人工智能·python·langchain
资深流水灯工程师41 分钟前
PyCharm 增强插件完整安装与配置指南(PySide6 开发专用)
ide·python·pycharm
invicinble1 小时前
sql层面语法的总结(mysql层面语法,主要侧重于sql的查询相关的信息量积累)
sql·mysql·oracle
Kobebryant-Manba1 小时前
学习模型构造
python·深度学习·学习