python中一次替换字符串中的多个字符[通俗易懂]

python中一次替换字符串中的多个字符[通俗易懂]知识传送门:正则表达式先直接上解决方案:比如下面给出的字符串a,有字母、’(单引号)、\n(换行符)、数字、:(冒号)、,(逗号),目标是只保留字符串中的数字和字母,且看我如何操作。importrea=’eew\’eawr,2fd\nsa:21’b=re.sub(r'[\’:\s,]*’,”,a)#前面是正则表达式,匹配多种字符(串)print(b)…

大家好,又见面了,我是你们的朋友全栈君。

知识传送门:正则表达式

正则表达式模式——runoob

先直接上解决方案:

比如下面给出的字符串a,有字母、’(单引号)、\n(换行符)、数字、:(冒号)、,(逗号),目标是只保留字符串中的数字和字母,且看我如何操作。

import re
a='eew \' eawr,2 fd\n sa:21'

b=re.sub(r'[\':\s ,]*', '', a) # 前面是正则表达式,匹配多种字符(串)
print(b)

具体运行展示一下:

python中一次替换字符串中的多个字符[通俗易懂]

解释一下这个正则表达式的意思:r'[\’:\s ,]*’

1:添加r,说明该字符串中全为普通字符(可参考:以r或u开头的字符串,按评论里IwillbecomeAIgod同学的说法是用于防转义),常用于正则表达式

2:[]内是一个字符集,字符集内的字符任何一个被匹配,都算匹配成功,比如r’a[bcd]e’,可以匹配到’abe’、’ace’、’ade’。

3:*代表匹配前一个字符0次或无限次。

4:\s代表的是空白字符,比如空格、换行符、制表符等等。

于是r'[\’:\s ,]*’组合起来就是匹配字符串中所有的的‘(单引号)、\n(换行符)、:(冒号)、,(逗号)

最后re.sub(a, b, string)表示将string中a所匹配到的所有字符通通替换成b,我们这个例子就是将匹配到的’(单引号)、\n(换行符)、:(冒号)、,(逗号)通通替换成”(nothing)。

关于正则表达式,另外我是受了这篇文章的启发(在此感谢):启发就是re.sub可以传给他正则表达式。

python中一次替换字符串中的多个字符[通俗易懂]

在此之前,先试了一下用正则表达式来匹配多个字符串,然后用replace方法行不通,但这个思路也是很正确的,最终还是帮我解决了问题。先看replace:

python中一次替换字符串中的多个字符[通俗易懂]

 看看在replace中用上面提到的思路是什么结果:

python中一次替换字符串中的多个字符[通俗易懂]

 看到了吗,我的正则表达式可没写错,是replace不行,就是说replace不接受我的正则表达式。

最后让我们来欣赏一首诗吧:

我看到了我的爱恋,
我飞到她的身边
我捧出给她的礼物
那是一小块凝固的时间
时间上有美丽的条文
摸起来像浅海的泥一样柔软

她把时间涂满全身
然后拉起我飞向存在的边缘

这是灵态的飞行
我们眼中的星星像幽灵
星星眼中的我们也像幽灵

                                       ——语出《三体》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133911.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言游戏 双缓存解决闪屏问题 详细总结[通俗易懂]

    最近,应学校课程要求,要完成一个C语言课程设计。可以是写一个小游戏,或是写管理系统等。所以,准备做一个改版贪吃蛇:消灭小虫虫(瞎起的名字:D)。之前学过Java,所以学C语言也就比较顺利。而在刚学完C语言刚着手准备做C语言的小游戏时,却发现了一个问题——闪屏。(我在网上查找了很多关于双缓存,有关的解答很少,更少能够让一个完全不了解的小白一个明白的解释。下面我想和大家分享我使用…

    2022年4月10日
    96
  • JAVA 新手入门

    JAVA 新手入门JAVA新手入门前言基础语法Java的语言特性面向对象的思想接口泛型前言对于JDK的安装和环境配置,网上已经有很多资料,比如:这个是我随便搜的。至于编辑器的话,我个人使用的是IDEA,因为刚好有教育邮箱,可以免费使用(这一点对于没有收入来源的学生来讲真的很赞)另外,我是学习过C++的一名普通学生,所以之后的很多内容,我都会相较于C++来比较学习,这样也便于快速理解,或许对于没有C++或类似基础的同胞们不太友好,请谅解。基础语法进入正题,对于任何一门语言,相信绕不过的第一个程序,自然就是Hell

    2022年6月9日
    28
  • pandas库如何安装_python无法安装库

    pandas库如何安装_python无法安装库Python之pandas库的安装及库安装两方法总结如果你连续看了博主的各类Python的库引用,你会发现这都是套路!!!先上正儿八经的流程,后面一句话总结一下这些库的安装套路。不知道安装库的你们用的什么操作?1.pandas库的安装(1)打开cmd窗口。点击开始栏,搜索cmd并打开。(2)找到安装的Python路径。可以通过右键点击Python快捷键,查找文件路径。(博主电脑并…

    2022年9月26日
    0
  • SVN版本库修改URL路径或者IP地址

    SVN版本库修改URL路径或者IP地址

    2021年9月21日
    72
  • 内网渗透的步骤_内网渗透思路

    内网渗透的步骤_内网渗透思路0x00Preface内网渗透主要是基于前期外围打点getshell的webserver,通过收集webserver上的信息,然后对其他内网主机进行口令上的攻击,当然也有一些基于漏洞的攻击。内网相关概念这里不再进行介绍,大家可以自行百度,诸如什么是域、域与工作组的区别、什么是DC、什么是AD等。当然,概念是生涩难懂的,结合实际环境会有助于理解。0x01信息收集systeminfo查看系统详细信息,如OS版本、补丁安装情况,可以根据这些信息筛选可利用的漏洞。netstart查看启动进

    2022年9月14日
    0
  • Ubuntu安装gcc4.1.2

    Ubuntu安装gcc4.1.2安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC4.1.2。如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。系统上原来的GCC编译…

    2022年7月24日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号