正则表达式

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)
相关推荐
2401_894915531 小时前
GEO 优化源码全解析:从搜索引擎到 AI 引擎的底层改写逻辑
java·服务器·前端·数据库·人工智能·分布式·搜索引擎
正儿八经的少年6 小时前
布隆过滤器(解决redis缓存穿透步骤之一)
数据库·redis·缓存
xrandzj6 小时前
MySQL8.0 从零通关核心操作手册(Ubuntu实战版)
数据库·mysql
我不会插花弄玉7 小时前
4.数据类型【由浅入深-MySQL】
数据库·mysql
denggun123457 小时前
yield
前端·数据库·python
ltl7 小时前
SQLite Rollback Journal:写前拷贝与提交点
数据库
ltl7 小时前
TiFlash Learner:Raft 日志如何进列存
数据库
ltl7 小时前
BM25 与 Lucene Similarity:公式如何落到 postings
数据库
ltl7 小时前
RocksDB Block Cache 与 Bloom Filter:读放大怎么裁
数据库
deli0070079 小时前
JSON 树形查看器:粘贴即解析,折叠展开一目了然
前端·数据库·json·ai编程