正则表达式

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)
相关推荐
zgl_2005377911 分钟前
源代码:跨数据库通用SQL语法解析与标注拆解
大数据·数据库·数据仓库·sql·etl·源代码管理
雪度娃娃1 小时前
存储器层次结构——磁盘硬盘存储
服务器·网络·数据库·计算机组成原理
暴力求解1 小时前
Mysql数据库基础
数据库·mysql·操作系统
意倾城2 小时前
MySQL最左前缀匹配原则
数据库·mysql
暴躁小师兄数据学院2 小时前
【AI大数据工程师特训笔记】第13讲:数据库性能手术刀
大数据·数据库·数据仓库·sql·postgresql
步十人2 小时前
【Redis】持久化机制
数据库·redis·缓存
Quincy_Freak3 小时前
银河麒麟aarch64如何高效做数据分析?分享一款内网离线数据分析利器
大数据·数据库·数据挖掘·数据分析·aarch64
香气袭人知骤暖3 小时前
PG数据库 Docker 容器自动备份方案
数据库·docker·容器
me8324 小时前
【Linux】Linux 目录命名规范溯源(Linux各个目录究竟是干嘛的)
linux·运维·数据库
土狗TuGou4 小时前
SQL内功笔记 · 第2篇:列的约束
数据库·笔记·sql