《Python编程实战——让繁琐工作自动化》实践项目——strip()正则表达式版本

news/2024/7/27 9:06:59/文章来源:https://blog.csdn.net/m0_52699073/article/details/137203448

题目:
写一个函数,它接受一个字符串,做的事情和 strip()字符串方法一样。如果只
传入了要去除的字符串,没有其他参数,那么就从该字符串首尾去除空白字符。否
则,函数第二个参数指定的字符将从该字符串中去除。

个人思路:
首先定义函数

def re_strip(string,m=''):

这里 m=‘’,目的是当函数只上传了一个参数,如果没有m=''则会导致m没有值,从而无法实现只上传一个参数。

对字符串进行除去两边空格的操作,我们需要匹配的是最前面和最后面有空格,或者最前面有而最后没有。而下面的正则表达式都能应对。‘^’表示必须以什么开头,‘$’:表示末尾,‘\s’表示空格,‘+’表示匹配一个或多个,因为前面或者后面不知道会有多少空格所以使用‘+’。

pattern = re.compile(r'^\s+|\s+$')

先解释一下三个参数,pattern:正则表达式,’ ':用空来代替空格,string:替换的字符串

return re.sub(pattern, '', string)

第二种情况,上传了两个参数。那么m等于第二个参数,也就是我们要替换的字符串部分。
这里正则直接匹配m就行了。

pattern = re.compile(m)
return re.sub(pattern, '', string)

完整代码如下:

import redef re_strip(string, m=''):if m == '':# print(m != None)pattern = re.compile(r'^\s+|\s+$')return re.sub(pattern, '', string)else:pattern = re.compile(m)return re.sub(pattern, '', string)a = re_strip(' fdsafdsaf     ')
print(a)a = re_strip('fdasfdasf', 'fd')
print(a)

结果如下:

fdsafdsaf
asasf

如果有错误,欢迎指出。如果有疑问,我会回答。如果有更好的代码,那就分享吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1033499.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vivado 配置存储器器件编程2

为双 QSPI (x8) 器件创建配置存储器文件 您可使用 write_cfgmem Tcl 命令来为双 QSPI (x8) 器件生成 .mcs 镜像。此命令会将配置数据自动拆分为 2 个独立 的 .mcs 文件。 注释 : 为 SPIx8 生成 .mcs 时指定的大小即为这 2 个四通道闪存器件的总大小。…

[leetcode]剑指 Offer 29. 顺时针打印矩阵

前言:剑指offer刷题系列 问题: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]思路: 看到这个…

标准版IP地址证书

IP地址证书是一种网络安全工具,用于确保互联网通信中IP地址的所有权和真实性。它类似于为网站颁发的SSL/TLS证书,但专门针对IP地址。这种证书由受信任的第三方机构(如证书颁发机构)签发,包含公钥、所有者信息和有效期。…

Php_Code_challenge18

题目: 答案: 解析: strcmp遇到特殊类型数据返回0,MD5函数遇到特殊数据类型会返回0,弱类型可用16进制绕过。

el-row一行放置3个el-col,有时出现空行现象

利用el-row的type属性&#xff0c;将type设置为flex&#xff0c;启用flex布局&#xff0c;再设置justify和align属性&#xff0c;即可避免该问题出现。 <el-row type"flex" class"row-bg"><el-col :span"6"><div class"gri…

数据结构之栈

栈的概念 栈是一种遵从后进先出原则的有序集合添加新元素的一端称为栈顶&#xff0c;另一端称为栈底操作栈的元素时&#xff0c;只能从栈顶操作&#xff08;添加、移除或取值&#xff09; 栈的实现 push() 入栈方法pop() 出栈方法top() 获取栈顶值size() 获取栈的元素个数cle…

3月27日 磁盘操作Linux下安装MySQL

3月27日 磁盘操作&&Linux下安装MySQL 一&#xff0e; 增加磁盘 增加了2个磁盘&#xff0c;然后重启系统。 #lsblk 可用于查看所有设备挂载情况 注意&#xff1a;增加了2块硬盘&#xff0c;分别是sdb和sdc,但是这2块硬盘没有分区也没有格式化&#xff0c;无法使用 Li…

使用pillow创建动态图形验证码

使用pillow创建动态图形验证码 #安装pillow模块&#xff1a;pip3 install pillow from PIL import Image,ImageDraw,ImageFont import random import stringdef id_code(width,height,bit,font_file,font_size):"""功能&#xff1a;生成随机图片验证码:param w…

Java毕业设计-基于Spring Boot的在线考试系统-毕业论文+答辩ppt(附源代码+演示视频)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统登录注册2、管理员功能模块3、用户功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于Spring Boot的在线考试系统-毕…

如何用Git在终端以可视化的方式查看提交情况

2024年4月2日&#xff0c;周二上午 要使用 Git 查看树状提交情况&#xff0c;可以使用 git log 命令的 --graph 选项。这个选项会以树状图的形式显示提交历史&#xff0c;清晰地展示每个提交的分支合并情况和分支间的关系。 git log --graph 除了 --graph 选项外&#xff0c;还…

如何将Maven与TestNG集成

我们已经讨论了如何在maven中执行单元测试用例&#xff0c;但那些是JUnit测试用例&#xff0c;而不是TestNG。当maven使用“mvn test”命令进入测试阶段时&#xff0c;这些用例被执行。 本文将介绍如何将Maven与TestNG集成&#xff0c;并在maven进入测试阶段时执行TestNG测试。…

【Linux】开始掌握进程控制吧!

送给大家一句话&#xff1a; 我并不期待人生可以一直过得很顺利&#xff0c;但我希望碰到人生难关的时候&#xff0c;自己可以是它的对手。—— 加缪 开始学习进程控制 1 前言2 进程创建2.1 fork函数初识2.2 fork函数返回值2.3 写时拷贝2.4 fork常规用法2.5 fork调用失败的原因…

LangChain入门:2.OpenAPI调用ChatGPT模型

引言 在本文中&#xff0c;我们将带您深入探索如何通过OpenAPI与ChatGPT模型进行高效交互&#xff0c;实现智能文本问答功能。通过LangChain库的实践&#xff0c;您将学习构建一个能够与用户进行自然语言对话的系统的关键步骤。 准备步骤 在动手编码之前&#xff0c;请确保您…

Go 源码之互斥锁 Mutex

文章目录 一、总结二、源码&#xff08;一&#xff09;Mutex&#xff08;二&#xff09; Lock&#xff08;三&#xff09;Unlock 三、常见问题有劳各位看官 点赞、关注➕收藏 &#xff0c;你们的支持是我最大的动力&#xff01;&#xff01;&#xff01;接下来会不断更新 golan…

将 EDI 从 VAN 迁移到知行之桥:EDI 成本降低 90%

G公司帮助零售商在网上和实体店取得成功&#xff0c;是来自300家顶级制造商网络中包含狩猎&#xff0c;钓鱼&#xff0c;露营和体育用品等45,000 多种商品的批发分销商。 通过可靠的客户服务、良好的定价和超越标准大卖场产品的库存量&#xff0c;G公司的重点是为零售商、电子…

ZooKeeper 的持久化机制

持久化的定义&#xff1a; 数据&#xff0c;存到磁盘或者文件当中。机器重启后&#xff0c;数据不会丢失。内存 -> 磁盘的映射&#xff0c;和序列化有些像。 ZooKeeper 的持久化&#xff1a; SnapShot 快照&#xff0c;记录内存中的全量数据TxnLog 增量事务日志&#xff…

网络播放解码器 SIP-7102网络音频解码播放器

网络播放解码器 SIP-7102网络音频解码播放器 SIP-7102是一款支持SIP协议的网络音频解码播放器&#xff0c;具有10/100M以太网接口&#xff0c;其接收网络的音频数据&#xff0c;通过设备的DSP及放大电路&#xff0c;可以直接连接两路15W的扬声器。可以用于公共广播、报警系统、…

将 Three 带到 Vue 生态系统,TresJs 中文文档上线

将 Three 带到 Vue 生态系统&#xff0c;TresJs 中文文档上线 中文文档上线入门指南 ThreeJS 在创建 WebGL 3D 网站方面是一个奇妙的库&#xff0c;同时他也是一个保持不断更新的库&#xff0c;一些对其封装的维护者&#xff0c;如 TroisJS&#xff0c;往往很难跟上其所有的更…

主流好用的 Markdown 编辑器介绍

在当今程序员的日常工作中&#xff0c;Markdown 已经成为了一种常用的文本标记语言&#xff0c;它简洁、易读、易写&#xff0c;被广泛应用于写作、文档编写、博客撰写等场景。为了更高效地编辑和管理 Markdown 格式的文档&#xff0c;选择一款功能强大、易用的 Markdown 编辑器…

Photoshop 2024 中文---专业图像处理软件的又一次飞跃

Photoshop 2024是一款功能强大的图像处理软件&#xff0c;广泛应用于创意设计和图像处理领域。它提供了丰富的绘画和编辑工具&#xff0c;包括画笔、铅笔、颜色替换、混合器画笔等&#xff0c;使用户能够轻松进行图片编辑、合成、校色、抠图等操作&#xff0c;实现各种视觉效果…