正则表达式笔记

正则表达式检测网站regex101: build, test, and debug regex

复制代码
#encoding=utf-8
import re

content="苹果是绿色的橙子是橙色的香蕉是黄色的乌鸦是黑色的"
p=re.compile(r'.色')
for one in p.findall(content):
    print(one)

"."匹配任意字符(一个)

"*"匹配任意个字符包括0个和任意个

复制代码
#encoding=utf-8
import re

content=("苹果是,绿色的\n"
         "橙子是,橙色的\n"
         "香蕉是,黄色的\n"
         "乌鸦是,黑色的\n")
p=re.compile(r',.*')
for one in p.findall(content):
    print(one)

"+"匹配至少1词

"{6}"重复6次

\d:任意数字

\D:非数字

\s:空字符,如\\t\\n\\r\\f\\v

\S:非空字符\^\\t\\n\\r\\f\\v

\w:任意文字字符=a-zA-Z0-9_

\W:非文字字符=\^a-zA-Z0-9_

12匹配1或2

\^表示非

^表示匹配文本的起始位置

单行模式:表示匹配整个文本的开头位置

多行模式:表示匹配文本每行的开头位置

复制代码
#encoding=utf-8
import re

content="""001-苹果价格-60,
002-橙子价格-70,
003-香蕉价格-80,
"""
import re
p=re.compile(r'^\d+')
print(p.findall(content))

多行模式:表示匹配文本每行的开头位置

python 复制代码
#encoding=utf-8
import re

content="""001-苹果价格-60,
002-橙子价格-70,
003-香蕉价格-80,
"""
import re
p=re.compile(r'^\d+',re.MULTILINE)
print(p.findall(content))

"$"表示文本的结束位置

如果是单行模式,表示这个文本的结束位置

如果是多行模式,表示文本每行的结束位置

python 复制代码
#encoding=utf-8
import re

content="""001-苹果价格-60,
002-橙子价格-70,
003-香蕉价格-80,"""
import re
p=re.compile(r'\d+,$',re.MULTILINE)
print(p.findall(content))

"?"取消贪婪模式

匹配模式替换:

复制代码
#encoding=utf-8
import re

content="""001-苹果价格-60,
002-橙子价格-70,
003-香蕉价格-80,"""
import re
names="关羽;张飞,赵云, 马超,黄忠, 李逵"
p=re.split(r'[;,\s]\s*',names)
print(p)
names='''<a href='https://www.bilibili.com.vieo/av23456543/?p=1'target="_blank">点击这里,这边看视屏</a>
         <a href='https://www.bilibili.com.vieo/av23342445/?p=1'target="_blank">点击这里,这边看视屏</a>
         <a href='https://www.bilibili.com.vieo/av23486573/?p=1'target="_blank">点击这里,这边看视屏</a>
'''
#替换函数,参数对象是match
def subfun(match):
    #Match对象的group(0)返回的是整个匹配上的字符串
    src=match.group(0)

    #March对象的group(1)返回的是第一个group分组的内容
    number=int(match.group(1))+6
    dest=(f'/av{number}/')
    print(f'{src}替换为{dest}')
    return dest

newStr=re.sub(r'/av(\d+?)/',subfun,names)
print(newStr)
相关推荐
星恒随风3 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
2603_969694856 小时前
【JavaWeb学习记录】MyBatis核心知识点与实战笔记:从入门到动态SQL
笔记·sql·学习·mysql·mybatis·javaweb·学习方法
可乐ea6 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
Go Work10 小时前
两个等值条件摆着,MySQL 偏要全表扫
经验分享·笔记
猫猫不是喵喵.10 小时前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
Oll Correct10 小时前
Adobe illustrator 案例十四:花元素标志草图绘制
笔记·ui·adobe·illustrator
每月一号准时摆烂14 小时前
服务器运维笔记(一)——使用shell编写实时查看BMC功率的脚本
运维·服务器·笔记
拼图20918 小时前
VSCode 正则表达式使用指南
ide·vscode·正则表达式
柳鲲鹏1 天前
内斗学概论:43、平级内斗
笔记
星恒随风1 天前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql