Python3字符串替换replace(),translate(),re.sub()

Python3字符串替换replace(),translate(),re.sub()Python3的字符串替换,这里总结了三个函数,和`translate()re.sub()`replace()python中的方法把字符串中的old(旧字符串)替换成new(新字符串

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

Python3的字符串替换,这里总结了三个函数,replace()translate()re.sub()

replace()

python 中的 replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次

str.replace(old, new[, max])

a = 'Hello,world. ByeBye!'
print(a.replace('l','Q'))
print(a.replace('abcdefghi','0123456789'))
print(a.replace('world','apple'))
HeQQo,worQd. ByeBye!
Hello,world. ByeBye!
Hello,apple. ByeBye!

可见,replace()函数可以替换string中的单个字符,也可以替换连续的字符,但无法生成字符替换映射表

敲黑板!

pandas 里面也有一个replace()函数,其用法更加多样化。比如,可以加入一个字典,用于替换对不同的值进行替换。

s = pd.Series([0, 1, 2, 3, 4])
s.replace({0:'a',1:'b'})
Out[2]: 
0    a
1    b
2    2
3    3
4    4
dtype: object

translate()

translate()函数也是python自带。与replace() 函数不同的是,这里使用str.maketrans函数来创建一个表,它可以使用各种参数,但是需要三个Arguments。

str.maketrans('','',del)

第一个参数为被替换的字符,第二个参数为替换的字符,第三个参数为要删除的字符

import string
a = 'Hello,world. ByeBye!'
remove = string.punctuation
table = str.maketrans('abcdefgh','01234567',remove)
print(a.translate(table))
H4lloworl3 By4By4

string.punctuation返回所有的标点符号,更多字符串常量如下图:
<span role="heading" aria-level="2">Python3字符串替换replace(),translate(),re.sub()

str.maketrans()的前两个参数相当于一个映射表,如上述结果,所有的'e'被替换成了'4'

第三个参数为要删除的字符,上述例子删除了所有的标点符号,如果要删除的字符还要加上空格的话,则可以这样:

table = str.maketrans('abcdefgh','01234567',remove+' ')
print(a.translate(table))
H4lloworl3By4By4

re.sub()

这个是re库里的函数,其原型为re.sub(pattern, repl, string, count)

第一个参数为正则表达式需要被替换的参数,第二个参数是替换后的字符串,第三个参数为输入的字符串,第四个参数指替换个数。默认为0,表示每个匹配项都替换。

import re
a = 'Hello,world. ByeBye!'
print(re.sub(r'[A-Z]', '8', a))
8ello,world. 8ye8ye!

上述例子是把所有的大写字母替换成8,下述表示只替换前2个这样的大写字母。

print(re.sub(r'[A-Z]', '8', a, 2))
8ello,world. 8yeBye!
  • Reference:
  1. Python3 replace()方法
  2. NLP-python3 translate()报错问题-TypeError: translate() takes exactly one argument (2 given
  3. Python 标准库笔记:string模块
  4. 关于python 的re.sub用法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年7月5日 下午6:16
下一篇 2022年7月5日 下午6:16


相关推荐

  • ArcGIS二次开发基础教程(09):叠加分析

    ArcGIS二次开发基础教程(09):叠加分析ArcGIS二次开发基础教程(09):叠加分析缓冲区分析的概念及原理请查看帮助文档http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/analysis-toolbox/how-buffer-analysis-works.htm缓冲区分析//实现对图层中所有点要素进行缓冲分析IGraphicsContainergraphicsConta…

    2022年7月23日
    13
  • Integer和int的区别

    Integer和int的区别Integer 是 int 的包装类 int 是基本数据类型最主要的区别就是这句一个是基本数据类型 一个是类 但其实其中隐含的细节很多 比如 Integer 的默认初始值是 null 而 int 的默认初试值是 0 Integer 变量必须先实例 int 变量则可以直接使用因为 Integer 是包装的类 所以自带很多方法可以使用 方法表附在最后 而 int 是基本数据类型只能做一些基本的

    2026年3月26日
    1
  • Putty(菩提)远程连接服务器教程听语音

    Putty(菩提)远程连接服务器教程听语音

    2021年10月8日
    59
  • 重启nginx命令

    重启nginx命令进入到nginx/sbin目录下面首先需要获取超级管理员的权限1、输入sudosu然后输入密码2、输入sudobash然后输入密码然后输入./nignx-sreloadnginx重启成功

    2022年6月19日
    39
  • excel批量导入图片 宏_怎么启用excel的宏

    excel批量导入图片 宏_怎么启用excel的宏准备图片格式规范:C盘的picture文件夹,放100张有序命名的图片,即1.jpg,2.jpg,3.jpg…100.jpg插入图片规则:按照图片的顺序,依次插入表格的A列,让每个图片一个单元

    2022年8月6日
    20
  • __nullable 消除

    __nullable 消除警告 Pointerismis 我觉得我是一个强迫症 写完代码都会去去掉所有的警告 有的我也去不掉好闹心 今天介绍一个警告的去掉方法 例子 刚刚遇见这个警告的时候脑子有点蒙 这是为什么呢 我觉得写法没什么问题的说 后来经过多番查找 发现这是 Xcode6 3 的一个新特性 即 nullabilitya

    2025年5月31日
    5

发表回复

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

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