Python 基础 正则表达式

文章目录

    • [一 作用](#一 作用)
    • [二 使用](#二 使用)
    • [三 规则表](#三 规则表)
      • [3.1 匹配单个字符](#3.1 匹配单个字符)
      • [3.2 匹配多个字符](#3.2 匹配多个字符)
      • [3.3 匹配开头和结尾](#3.3 匹配开头和结尾)

一 作用

处理文本

二 使用

导入内置模块

python 复制代码
import  re

函数结构

python 复制代码
re.match(pattern, string, flags)  pattern 正则表达式  string 要检测的字符串  flags 修饰符用来指定是否区分大小写,是否多行,是否匹配换行符等,几乎没用

实际使用

python 复制代码
import  re

res = re.match("小明", "小明明明我是小明")  #他只匹配第一个字符,如果明不在最开头结果会是None,且只返回第一个合适的结果,匹配时只看pattern的整体
print(res) #<re.Match object; span=(0, 1), match='小明'>
print(res.group())#小明用group来提取匹配的字符串 如果匹配不到,会报错

三 规则表

3.1 匹配单个字符

实例1 .的使用

匹配除/n外的任意一个字符

python 复制代码
import  re

res = re.match(".", "小明明明我是小明")
print(res.group())#小

res = re.match(".明", "小明明明我是小明")
print(res.group())#小明

实例2 的使用

匹配 内列举的符合条件的第一个字符

python 复制代码
import  re

res = re.match("[大小]", "小明你好")#只能检查"小"在不在[ ]内
print(res.group())#小

res = re.match("[大小][明暗]", "小明你好")#这样就是检查前两个字符
print(res.group())#小明

#匹配数字
res=re.match("[0123456789]","9527")#匹配0到9
res=re.match("[0-9]","9527")#匹配0到9
res=re.match("[0-46-9]","9527")#不匹配5
#匹配字母
res=re.match("[a-zA-Z]","hello")#同时匹配小写a到z和大写A到Z

实例3 \d 匹配0-9

等价于0-9

python 复制代码
import  re

res = re.match('\\d', "1小明012你好")  #直接写\d会出警告
print(res.group())#1

实例4 \D 匹配非数字

python 复制代码
import  re

res = re.match('\D', "小明012你好")
print(res.group())#小

3.2 匹配多个字符

示例1 *

python 复制代码
import  re
res = re.match('\\w*', "小明012你好") #*号不能单独作为匹配条件,只能修饰匹配条件,\w代表任意字符(不包含标点和特殊符号)*表示无限,所以会全部匹配
print(res.group())#小明012你好

res = re.match('\\d*', "012你好")
print(res.group())#012

res = re.match('\\d*', "小明012你好")
print(res.group())#打印为空 但不报错

示例2 +

python 复制代码
import  re
res = re.match('\\d+', "小明012你好")
print(res.group())#报错

res = re.match('\\d+', "012你好")
print(res.group())#012

示例3 ?

python 复制代码
import  re
res = re.match('\\d?', "012你好")
print(res.group())#0

res = re.match('\\d?', "你好")
print(res.group())#打印为空 不报错

示例4 {n}

python 复制代码
import  re
res = re.match('\\d{2}', "012你好")#可以用来取代\\d\\d写起来更方便
print(res.group())#01

示例5 {n,m}

最少截取n个,一直截到m个,有效字符少于n会报错

python 复制代码
import  re
res = re.match('\\w{5,9}', "012你好")#最少要有5个字符,最多可以截取9个字符,也就是说有效字符的数量要大于5个,最多可以截取9个
print(res.group())#012你好

3.3 匹配开头和结尾

示例1 ^

python 复制代码
import  re

#用法1 表示从开头匹配
res = re.match('^\\w', "012你好")
print(res.group())#0

#用法2 表示不匹配[]内的内容
res = re.match('[^0]', "012你好")
print(res.group())#报错 第一个字符是什么都可以,唯独不能是0

示例2 $

他的作用是检查字符串是否以特定字符结尾

python 复制代码
import  re
res = re.match('.*好$', "012你好")#除了最后的字符,前边也要想办法读出来,否则会报错,这里用.*指示除了最后一个字符必须是"好",前边是什么都可以
print(res.group())#012你好
相关推荐
巧克力男孩dd11 小时前
Python超典型练习题(第一次作业)
开发语言·python·算法
闲猫12 小时前
LangChain / Core components / Models
开发语言·python·langchain
cui_ruicheng14 小时前
Python从入门到实战(十三):模块、包与环境管理
开发语言·python
李宸净15 小时前
Web自动化测试selenium+python
前端·python·selenium
而后笑面对15 小时前
生信bwa算法
python
至乐活着16 小时前
深入Python内存管理与垃圾回收:从引用计数到分代回收的实战解析
python·性能优化·内存管理·垃圾回收·引用计数
m0_5474866616 小时前
《Python数据分析与挖掘》全套PPT课件
python·数据挖掘·数据分析
㱘郳17 小时前
飞机大战Pygame存档
python·pygame
阿童木写作17 小时前
跨马翻译:一站式图片视频智能处理,提升跨境电商工作效率
人工智能·python·音视频