正则表达式

1. re模块操作

在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re

1.1 re模块的使用过程
python 复制代码
# 导入re模块
import re
#使用match方法进行匹配操作
result=re.match(正则表达式,要匹配的字符串)
#如果上一步匹配到数据的话,可以使用group方法来提取数据
result.group()
1.2 re 模块示范(匹配以itcast开头的语句)
python 复制代码
import re
result=re.match("rongqian","rongqian.cn")

result.group()
1.3 说明

re.match() 能够匹配出以xxxx开头的字符串

2.匹配单个字符

2.1 \d 匹配一位数字 0-9
python 复制代码
import re
print(re.match("速度与激情\d","速度与激情7"))
2.2 匹配范围 中任意一个都可以 注意:这里的中括号不是列表,而是不要分隔符
python 复制代码
import re
print(re.match("速度与激情[36-8]$","速度与激情7"))
2.3 \s 匹配空白,即 空格,tab键
python 复制代码
import re
print(re.match("速度与激情\s\d$","速度与激情 7"))
2.4 . 匹配任意1个字符(除了\n)
python 复制代码
import re 
print(re.match("速度与激情.$","速度与激情A"))

3 . 匹配多个字符

3.1 {m,n} 匹配前一个字符出现从m到n次
python 复制代码
import re  #导入正则模块
print(re.match("速度与激情\d{1,2}$","速度与激情19"))
3.2 {m} 匹配前一个字符出现m次

需求:匹配出,8到20位的密码,可以是大小写英文字母,数字,下划线

python 复制代码
import re

ret=re.match("[a-zA-Z0-9_]{6}","12a3g45678")
print(ret.group())

ret=re.match("[a-zA-Z0-9_]{8,20}","1ad12f23s34455ff66")
print(ret.group())
3.4 ? 匹配前一个字符出现1次或0次,即要么有1次,要么没有

需求:匹配出,0到99之间的数字

python 复制代码
import re
ret=re.match("[1-9]?[0-9]","7")
print(ret.group())

ret=re.match("[1-9]?\d","33")
print(ret.group())

ret=re.match("[1-9]?\d","09")
print(ret.group())
3.5 * 匹配前一个字符出现0次或者无线次,即可有可无

需求:匹配出,一个字符串第一字母为大小字符,后面都是小写字母并且这些小写字母可有可无

python 复制代码
import re

ret=re.match("[A-Z][a-z]*","M")
print(ret.group())

ret=re.match("[A-Z][a-z]*","MnnM")
print(ret.group())

ret=re.match("[A-Z[a-z]*]","Aabcdef")
print(ret.group())
3.6 + 匹配前一个字符出现1次或者无限次

需求:匹配出,变量名是否有效

python 复制代码
import re

names=["names1","_name","2_name","__name__"]

for name in names:
     ret=re,match("[a-zA-Z0-9_]+[\w]*",name)
     if ret:
        print("变量名 %s 符合要求"% ret.group())
     else:
        print("变量名 %s 非法" % name)
相关推荐
复园电子2 小时前
企业级PDF批量盖章方案选型指南
数据库·pdf
AI-好学者9 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
其实防守也摸鱼10 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚10 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
龙仔72510 小时前
SQL Server 创建只读账号完整操作(分两种场景:SSMS图形界面 + T-SQL脚本)
数据库·sql·oracle
霁月的小屋11 小时前
生产环境中的事务实践——银行系统上线记(四)
数据库
Database_Cool_11 小时前
AI 应用数据底座首选:阿里云 PolarDB 为大模型 RAG 提供一体化支撑
数据库·阿里云
玖玥拾11 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
IvorySQL12 小时前
PG 日报|社区讨论重构 pg_hba 配置文件格式
数据库·人工智能·postgresql·重构·ivorysql
逝水无殇12 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#