正则表达式

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)
相关推荐
源代码•宸18 小时前
Golang基础语法(go语言error、go语言defer、go语言异常捕获、依赖管理、Go Modules命令)
开发语言·数据库·后端·算法·golang·defer·recover
optimistic_chen18 小时前
【Redis 系列】持久化特性
linux·数据库·redis·分布式·中间件·持久化
Coder码匠18 小时前
从项目实践中学习 Spring 事务范围优化
数据库·spring
我的golang之路果然有问题19 小时前
mysql 个人笔记导出之-数据库时间戳问题以及增删改查
数据库·笔记·学习·mysql·分享·个人笔记
张永清-老清19 小时前
每周读书与学习->JMeter性能测试脚本编写实战(三)如何利用JMeter为MySQL数据库构造测试数据
数据库·测试工具·jmeter·压力测试·性能调优·jmeter性能测试·每周读书与学习
亮子AI19 小时前
注册成功的提示信息怎么写?
数据库·python
Clang's Blog19 小时前
使用 SQL Server Management Studio 还原 .bak 备份文件的完整指南
数据库·sqlserver
ybb_ymm19 小时前
如何通过跳板机链接mysql数据库
数据库·mysql