正则表达式笔记

正则表达式检测网站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)
相关推荐
三品吉他手会点灯12 小时前
C语言学习笔记 - 44.运算符和表达式 - 运算符2 - 除法与取余运算符
c语言·开发语言·笔记·算法
2601_colin13 小时前
Codex插件全流程实战指南
开发语言·经验分享·笔记·微信开放平台
疯狂打码的少年13 小时前
输入输出控制方式:DMA(直接存储器存取)
网络·笔记
cuso4win14 小时前
Feed 流面试笔记
笔记·面试·职场和发展
GNG16 小时前
《终身成长》读书笔记
笔记·学习
Cloud_Shy61818 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第三章 Item 21 - 24)
开发语言·人工智能·笔记·python·迭代器模式
nnsix19 小时前
Unity HybirdCLR 简单了解 笔记
笔记
handler0120 小时前
【算法】并查集(普通/扩展/带权)模板与例题
数据结构·c++·笔记·算法·c·图论·查并集
中屹指纹浏览器20 小时前
指纹浏览器环境克隆、批量派生的风控隐患剖析与标准化新建环境实操指南
经验分享·笔记
.千余20 小时前
【C++】C++手写Vector容器:从底层源码模拟实现
开发语言·c++·经验分享·笔记·学习