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

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

replace()

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中的单个字符,也可以替换连续的字符,但无法生成字符替换映射表

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返回所有的标点符号,更多字符串常量如下图:

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://www.cnblogs.com/bjwu/p/9038910.html

时间: 2024-11-09 13:15:21

Python3字符串替换replace(),translate(),re.sub()的相关文章

C#自定义字符串替换Replace方法实例

本文实例讲述了C#自定义字符串替换Replace方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 前一阵遇到一个如标题的算法题,是将原有字符串的某些片段替换成指定的新字符串片段,例如将源字符串:abcdeabcdfbcdefg中的cde替换成12345,得到结果字符串:ab12345abcdfb12345fg,即:abcdeabcdfbcdefg -> ab12345abcdfb12345fg. 二.实现方法: 显然不能用string.Replace方法,需要自定义一个方法 strin

js字符串替换(replace)

记录一个开发中所犯的错误. 需求:用js将字符串中的某些子字符串替换为指定的新字符串. 实现思路:印象中js字符串替换有replace方法,replace方法接收两个参数,第一个为要替换的子字符串或正则匹配模式,第二个参数为新字符串.自己对正则不熟,认为用字符串能满足需求. 简单测试 var str="apples are round"; var newStr = str.replace('apples','oranges') //newStr 值为:oranges are round

C#自定义字符串替换Replace方法

前一阵遇到一个如标题的算法题,是将原有字符串的某些片段替换成指定的新字符串片段,例如将源字符串:abcdeabcdfbcdefg中的cde替换成12345,得到结果字符串:ab12345abcdfb12345fg,即:abcdeabcdfbcdefg -> ab12345abcdfb12345fg. 显然不能用string.Replace方法,需要自定义一个方法 string Replace(string originalString, string strToBeReplaced, strin

nyoj 113 字符串替换 (string中替换函数replace()和查找函数find())

字符串替换 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 编写一个程序实现将字符串中的所有"you"替换成"we" 输入 输入包含多行数据 每行数据是一个字符串,长度不超过1000 数据以EOF结束 输出 对于输入的每一行,输出替换后的字符串 样例输入 you are what you do 样例输出 we are what we do读一行的方法:用geiline(cin,s) 1 #include <iostream>

winform学习日志(三十)----------从字符串总分离文件路径、命名、扩展名,Substring(),LastIndexOf()的使用;替换某一类字符串,Replace()的用法

一:从字符串总分离文件路径.命名.扩展名,上图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace FilePathString { public par

POJ1572 Automatic Editing 字符串替换,replace就够了

题意不难理解,但是一开始还是没有看清楚题目.Replace the first occurrence of the find string within the text by the replace-by string, then try to perform the same replacement again on the new text. Continue until the find string no longer occurs within the text, and then

Java字符串替换函数replace、replaceFirst、replaceAll

一.replace(String old,String new) 功能:将字符串中的所有old子字符串替换成new字符串 示例 String s="Hollow world!"; System.out.println(s); System.out.println(s.replace("o", "#")); /* * 结果:Hollow world! * H#ll#w w#rld! */ 二.replaceAll(String arg0, Stri

字符串替换 (replace)

将文本文件中指定的字符串替换成新字符串. 由于目前的OJ系统暂时不能支持用户读入文件,我们编写程序从键盘输入文件中的内容,当输入的一行为end时,表示结束.end后面有两个字符串,要求用第二个字符串替换文本中所有的第一个字符串. 输入格式: Xi’an Institute of Posts and Telecommunications is co-designed and implemented by the People’s Government of Shaanxi Province and

python 字符串替换功能 string.replace()可以用正则表达式,更优雅

说起来不怕人笑话,我今天才发现,python 中的字符串替换操作,也就是 string.replace() 是可以用正则表达式的. 之前,我的代码写法如下,粗笨: 自从发现了正则表达式也生效后,代码变得优雅简洁: 备注:上图中的base_info 是 pandas 里的 dataframe 数据结构,可以用上述方法使用 string 的 replace 方法. 原文地址:https://www.cnblogs.com/jjliu/p/11514226.html