当前位置: 首页 > news >正文

【Python】正则

特殊字符转义

以下字符都需要用 反斜线(\)来进行特殊字符的转义。

\n - 换行符
\t - 制表符
\ - 反斜线本身
. - 点号(任意单个字符)
星号(0次或多次重复前面的元素)
加号(1次或多次重复前面的元素)
? - 问号(零次或一次重复前面的元素)
[] - 方括号内的任何字符集合
() - 分组操作符
{} - 花括号内指定数量的重复次数

起因,python正则匹配,从'你好aaa+'匹配‘aaa+’,我就想完整的匹配aaa+,但是实际效果是'你好a'这种的也能匹配上。

debug发现原来+在正则中是特殊字符。如果要匹配 + 字符本身,你需要使用反斜杠 \ 对它进行转义。即遇见 + 的pattern用 /+ 来替换,

modified_string = original_string.replace("+", "/+")

‘aaa+’被解释为:匹配前面的字符 'aaa' 一次或多次。

import rere.search('aaa+', 'a') # nonere.search('aaa+', 'aaab') # <_sre.SRE_Match object; span=(0, 3), match='aaa'>re.search('aaa+', 'ab') # nonere.search('aaa+', 'aab') # nonere.search('aaa+', 'aaaaaab')  # <_sre.SRE_Match object; span=(0, 6), match='aaaaaa'>

re.match() 与 re.search() 的区别

1. `re.match()`:
   - `re.match()` 用于从字符串的起始位置开始匹配正则表达式。
   - 如果匹配成功,`re.match()` 返回一个匹配对象;如果匹配失败,它返回 `None`。
   - 它只匹配字符串的第一个子串,也就是说,它不会扫描整个字符串,而是在找到第一个匹配项后停止。

2. `re.search()`:
   - `re.search()` 用于在字符串中扫描正则表达式,并返回第一个匹配项。
   - 如果匹配成功,`re.search()` 返回一个匹配对象;如果匹配失败,它返回 `None`。
   - 它会扫描整个字符串,直到找到第一个匹配项为止。

简而言之,`re.match()` 通常用于检查字符串的起始部分是否与正则表达式匹配,而 `re.search()` 用于在整个字符串中查找匹配项。下面是一个示例,展示这两个函数的区别:

总结:search()更符合需求。

import re# 示例字符串
text = "这是一个测试字符串,包含多个部分。"# 正则表达式
pattern1 = r'测试'
pattern2 = r'多个部分'# 使用re.match()
match1 = re.match(pattern1, text)
match2 = re.match(pattern2, text)print(f"match1: {match1}") # match1: None
print(f"match2: {match2}") # match2: None# 使用re.search()
search1 = re.search(pattern1, text)
search2 = re.search(pattern2, text)print(f"search1: {search1}") # search1: <_sre.SRE_Match object; span=(4, 6), match='测试'>
print(f"search2: {search2}") # search2: <_sre.SRE_Match object; span=(12, 16), match='多个部分'>

re.findall()

matches = re.findall(pattern, str)

re.sub()

# 将str中匹配到的pattern部分替换为''new_str = re.sub(pattern, '', str)

实践1:匹配12g

pattern = r"\d+\s*[Gg][Bb]?"  # 256g, 12g

实践2:匹配12g+12g, 12gb+12gb, 12g+1

pattern = r"\d+\s*[g]?[b]?\+\d+\s*[Gg]?[Bb]?"

相关文章:

【Python】正则

特殊字符转义 以下字符都需要用 反斜线&#xff08;\&#xff09;来进行特殊字符的转义。 \n - 换行符 \t - 制表符 \ - 反斜线本身 . - 点号&#xff08;任意单个字符&#xff09; 星号&#xff08;0次或多次重复前面的元素&#xff09; 加号&#xff08;1次或多次重复前面的…...

Wilson威尔逊平滑

1、威尔逊平滑引入的动机 在曝光很少的情况下&#xff0c;计算出的CTR并不真实可靠&#xff0c;而样本数越大&#xff0c;CTR的比例才越准确&#xff0c;更能反应真实情况。 为了衡量样本数对于CTR信区间的影响&#xff0c;我们引入"威尔逊&#xff08;Wilson&#xff0…...

Mac测试环境搭建

1 下载pycharm 下载地址&#xff1a;PyCharm&#xff1a;JetBrains 出品的用于数据科学和 Web 开发的 Python IDE 2 安装python3.6.8 下载地址&#xff1a;Index of /ftp/python/3.6.8/ 安装后提示错误 换一种方式&#xff1a;用conda 下载地址&#xff1a;Free Download | …...

Jira自动化的实用工具——ScriptRunner简介及最佳实践

近日&#xff0c;龙智举办的DevSecOps研讨会年终专场“趋势展望与实战探讨&#xff1a;如何打好DevOps基础、赋能创新”在上海圆满落幕。龙智Atlassian技术与顾问咨询团队&#xff0c;以及清晖、JamaSoftware、CloudBees等生态伙伴的嘉宾发表了主题演讲&#xff0c;分享他们在D…...

App拉起微信小程序参考文章

App拉起微信小程序参考文章h5页面跳转小程序-----明文URL Scheme_weixin://dl/business/?appid*appid*&path*path*&qu-CSDN博客文章浏览阅读561次&#xff0c;点赞16次&#xff0c;收藏5次。仅需两步&#xff0c;就能实现h5跳转小程序&#xff0c;明文 URL Scheme&…...

AcWing 4956. 冶炼金属

对于这个题&#xff0c;V越大&#xff0c;除出来的数就越小&#xff0c;V越小&#xff0c;除出来的数就越大&#xff0c;当我们找一个最大和最小值的时候&#xff0c;就可以通过这个性质进行二分来求解。 可以通过求满足 [ A V ] [\frac{A}{V}] [VA​] 小于等于 B B B的最小的…...

记一次面试经历

这段时间正好是金三银四的黄金时间段&#xff0c;正好这段时间也有很多企业有hc在招人&#xff0c;本文主要就是来聊聊我这段时间的面试经历吧。目前我是从北京投上海的岗位&#xff0c;现在有两家保底的offer。 简历投递 简历这块是基础也是必要的门槛&#xff0c;有没有面试…...

js【详解】DOM

文档对象模型&#xff08;Document Object Model&#xff0c;简称DOM&#xff09; DOM 是哪种数据结构 &#xff1f; DOM 的本质是浏览器通过HTML代码解析出来的一棵 树。 操作 DOM 常用的 API 有哪些 &#xff1f; 获取 DOM 节点 //方式 1&#xff1a;通过【id】获取&#xf…...

《互联网的世界》第六讲-去中心化和安全

互联网构建于开放互联的中立原则之上&#xff0c;公平接入&#xff0c;数据互联互通&#xff0c;流量被无差别对待&#xff0c;这意味着互联网本质上是匿名&#xff0c;去中心的&#xff0c;这与我们的现实世界完全不同。 但互联网上的主流业务却是 c/s 产销模式&#xff0c;试…...

nginx代理参数proxy_pass

proxy_pass参数用于配置反向代理&#xff0c;指定客户端请求被转发到后端服务器&#xff0c;后端地址可以是域名、ip端口URI 代理后端报错提示本地找不到CSS文件、JavaScript文件或图片 例如&#xff1a; nginx &#xff1a;10.1.74.109 后端服务&#xff1a;http://10.1.74.…...

_note_01

1.什么是跨平台 跨平台是指一个应用程序或一个编程语言&#xff0c;可以在不同的操作系统或平台上运行&#xff0c;而不需要对代码进行修改或重新编译。 跨平台应用程序或编程语言的设计和实现可以使开发者减少对特定平台的依赖&#xff0c;从而降低维护和开发的成本。同时&am…...

聊聊python中面向对象编程思想

面向对象编程思想 1、什么是面向过程 传统的面向过程的编程思想总结起来就八个字——自顶向下&#xff0c;逐步细化&#xff01; → 将要实现的功能描述为一个从开始到结束按部就班的连续的“步骤” → 依次逐步完成这些步骤&#xff0c;如果某一个步骤的难度较大&#xff…...

MySQL-视图:视图概述、使用视图注意点、视图是否影响基本表

视图 一、视图概述二、使用视图注意点三、视图操作是否影响基本表 一、视图概述 在数据库管理系统中&#xff0c;视图&#xff08;View&#xff09;是一种虚拟表&#xff0c;它并不实际存储数据&#xff0c;而是基于一个或多个实际表的查询结果。视图提供了一种对数据库中数据…...

鸿蒙开发(四)-低代码开发

鸿蒙开发(四)-低代码开发 本文主要介绍下鸿蒙下的低代码开发。 鸿蒙低代码是指在鸿蒙操作系统进行应用开发时&#xff0c;采用简化开发流程和减少编码量的方式来提高开发效率。 1&#xff1a;开启低代码开发 首先我们打开DevEco Studio .然后创建工程。 如图所示&#xff…...

BUU [网鼎杯 2020 半决赛]AliceWebsite

BUU [网鼎杯 2020 半决赛]AliceWebsite 开题&#xff1a; hint附件是源码。在index.php中有一个毫无过滤的本地文件包含 <?php $action (isset($_GET[action]) ? $_GET[action] : home.php); if (file_exists($action)) {include $action; } else {echo "File not…...

超越 Siri 和 Alexa:探索LLM(大型语言模型)的世界

揭秘LLM&#xff1a;语言模型新革命&#xff0c;智能交互的未来趋势 近年来&#xff0c;虚拟助手的世界发生了重大转变。 虽然 Siri 和 Alexa 本身就是革命性的&#xff0c;但一种称为大型语言模型 (LLM) 的新型人工智能正在将虚拟助手的概念提升到一个全新的水平。 在这篇博文…...

Linux删除Mysql

//rpm包安装方式卸载 查包名&#xff1a;rpm -qa|grep -i mysql 删除命令&#xff1a;rpm -e –nodeps 包名//yum安装方式下载 1.查看已安装的mysql 命令&#xff1a;rpm -qa | grep -i mysql 2.卸载mysql 命令&#xff1a;yum remove mysql-community-server-5.6.36-2.el7.x86…...

CNN中常见的池化操作有哪些,作用是什么?

CNN中常见的池化操作有哪些&#xff0c;作用是什么&#xff1f; CNN中常见的池化操作只要是两种&#xff0c;平均值池化和最大值池化最大值池化常用于分类任务&#xff0c;是指在输入数据的局部区域内取最大值作为输出。最大池化的作用是降低特征图的尺寸&#xff0c;减少参数…...

能打印单据的软件,如进出库单据,物流快运单据,定制单据样式

能打印单据的软件&#xff0c;如进出库单据&#xff0c;物流快运单据&#xff0c;定制单据样式 一、前言 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、不同行业打印的单据不同 2、同一个行业打印的样式可能不同 3、有的行业已经印刷好了许多打印…...

uniapp列表进入动画

app列表入场动画 - DCloud 插件市场 列表入场动画https://ext.dcloud.net.cn/plugin?id16957...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

多元隐函数 偏导公式

我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式&#xff0c;给定一个隐函数关系&#xff1a; F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 &#x1f9e0; 目标&#xff1a; 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z​、 …...

数据库正常,但后端收不到数据原因及解决

从代码和日志来看&#xff0c;后端SQL查询确实返回了数据&#xff0c;但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离&#xff0c;并且ai辅助开发的时候&#xff0c;很容易出现前后端变量名不一致情况&#xff0c;还不报错&#xff0c;只是单…...

内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献

Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译&#xff1a; ### 胃肠道癌症的发病率呈上升趋势&#xff0c;且有年轻化倾向&#xff08;Bray等人&#xff0c;2018&#x…...

篇章一 论坛系统——前置知识

目录 1.软件开发 1.1 软件的生命周期 1.2 面向对象 1.3 CS、BS架构 1.CS架构​编辑 2.BS架构 1.4 软件需求 1.需求分类 2.需求获取 1.5 需求分析 1. 工作内容 1.6 面向对象分析 1.OOA的任务 2.统一建模语言UML 3. 用例模型 3.1 用例图的元素 3.2 建立用例模型 …...