[编程基础] Python字符串替换笔记
Python字符串替换笔记
Python字符串替换笔记主要展示了如何在Python中替换字符串。Python中有以下几种替换字符串的方法,本文主要介绍前三种。
- replace方法(常用)
- translate方法
- re.sub方法
- 字符串切片(根据Python字符串切片方法替换字符)
1 replace方法
Python replace方法把字符串中的old(旧字符串) 替换成new(新字符串),如果指定第三个参数max,则设置替换次数不超过 max 次。
str.replace(old, new[, max])
示例1
在该示例中,出现的两个单词Hello都被替换为Hi。
# 原字符
msg = "Hello world! Hello Python!"
# 替换字符,字符串直接调用replace方法
msg2 = msg.replace('Hello', 'Hi')
print(msg2)
Hi world! Hi Python!
示例2
可以直接str.replace方法。它将我们进行替换的字符串作为第一个参数。结果和示例1一样。
msg = "Hello world! Hello Python!"
msg2 = str.replace(msg, 'Hello', 'Hi')
print(msg2)
Hi world! Hi Python!
示例3
我们可以用换行符替换每个逗号,并设置替换次数
data = "1,2,3,4,5"
# 替换次数为3次
data2 = data.replace(',', '\n', 3)
print(data2)
1
2
3
4,5
示例4
在该示例中,我们替换最后一次出现的单词Hello。需要结合Python rfind()方法。rfind()方法是指返回字符串最后一次出现的位置。rfind()使用介绍见python3-string-rfind。
msg = "Hello world! Hello Python!"
# Python rfind()返回字符串最后一次出现的位置
idx = msg.rfind("Hello")
print(idx)
# 提取前一部分字符不替换,取后一部分字符进行替换
# 这里用到了字符串切片的方式
msg2 = msg[:idx] + str.replace( msg[idx:] , "Hello", "Hi")
print(msg2)
13
Hello world! Hi Python!
示例5
我们可以将replace方法链接起来进行多次替换。
msg = "Hello world! Hello Python!"
msg2 = msg.replace('Hello', 'Hi').replace('!','.')
print(msg2)
Hi world. Hi Python.
2 translate方法
Python的translate函数与replace函数一样,用于替换字符串的一部分。Translate只能处理单个字符,但translate可以同时进行多个替换任务。在使用translate函数进行转换之前。需要一个翻译表table,翻译表用于表示字符的替换关系,这个翻译表可以通过maketrans()方法获得。这个翻译表可翻译字符数为256,翻译表中的字符都要包含在ASCII码表(含扩展)中。translate()方法语法为:
str.translate(table)
示例1
msg = "Hello world! Hello Python!"
# intab中的字符与outtab中的字符一一对应
intab = "aeiou"
outtab = "12345"
# 制作翻译表
trantab = str.maketrans(intab, outtab)
# trantab中的字符都会用ASCII码表示
print(trantab)
msg2 = msg.translate(trantab)
print(msg2)
{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
H2ll4 w4rld! H2ll4 Pyth4n!
3 re.sub 替换字符串
我们可以使用正则表达式来替换字符串。Python的re库就是常用的正则表达式匹配库(建议学一学很有用)。re库使用见模式匹配与正则表达式笔记。这里主要使用re.sub函数替换字符串。re.sub()方法需要传入两个参数。第一个参数是一个字符串,用于取代发现的匹配。第二个参数是一个字符串,即正则表达式。sub()方法返回替换完成后的字符串。
示例1
import re
msg = "Hello world! Hello Python!"
# 设置要替换的字符
namesRegex = re.compile(r'Hello')
# 用'Hi'替换msg中已经设置好要替换的字符
namesRegex.sub('Hi', msg)
'Hi world! Hi Python!'
4 参考
[编程基础] Python字符串替换笔记的更多相关文章
- StackOverFlow排错翻译 - Python字符串替换: How do I replace everything between two strings without replacing the strings?
StackOverFlow排错翻译 - Python字符串替换: How do I replace everything between two strings without replacing t ...
- python 字符串替换
字符串替换可以用内置的方法和正则表达式完成.1用字符串本身的replace方法: a = 'hello word'b = a.replace('word','python')print b 2用正则表 ...
- python字符串替换的2种有效方法
python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'我把a字符串里的word替换为python1用字符串本身 ...
- python字符串替换的2种方法
python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'把a字符串里的word替换为python 1.用字符串本 ...
- [编程基础] Python格式化字符串常量f-string总结
Python格式化字符串常量f-string总结 本文主要总结在Python中如何使用格式化字符串常量f-string(Formatted string literals).在 Python 程序中, ...
- python 字符串替换功能 string.replace()可以用正则表达式,更优雅
说起来不怕人笑话,我今天才发现,python 中的字符串替换操作,也就是 string.replace() 是可以用正则表达式的. 之前,我的代码写法如下,粗笨: 自从发现了正则表达式也生效后,代码变 ...
- C#编程基础之字符串操作
本文来源于复习基础知识的学习笔记.自用的同时希望也能帮到其他童鞋. 什么是编程语言? 计算机可以执行的指令.这些指令成为源代码或者代码 有什么用? 以人们可读可理解的方式编写指令.人们希望计算机执行指 ...
- 【学习笔记】第二章 python安全编程基础---python爬虫基础(urllib)
一.爬虫基础 1.爬虫概念 网络爬虫(又称为网页蜘蛛),是一种按照一定的规则,自动地抓取万维网信息的程序或脚本.用爬虫最大的好出是批量且自动化得获取和处理信息.对于宏观或微观的情况都可以多一个侧面去了 ...
- [编程基础] Python模块和包使用笔记
本文探讨Python模块和Python包,这两种机制有助于模块化编程. 模块化编程是指将大型笨拙的编程任务分解为单独的,较小的,更易于管理的子任务或模块的过程.然后可以像构建模块一样将各个模块拼凑在一 ...
随机推荐
- 实现fastdfs防盗链功能
目录 1.背景 2.实现原理 2.1 开启防盗链 2.2 重启 nginx 2.3 Java代码生成token 1.token生成规则 2.java生成token 3.测试 3.1 带正确token访 ...
- @Transactional注解真的有必要声明rollbackFor属性吗?
@Transactional注解真的有必要声明rollbackFor属性吗? 今天在看spring的事务底层源码时,想到一个问题,@Transactional注解真的有必要声明rollbackFo ...
- Ubuntu 环境下安装 Docker
系统要求 Docker目前只能运行在64位平台上,并且要求内核版本不低于3.10,实际上内核越新越好,过低的内核版本容易造成功能不稳定. 用户可以通过如下命令检查自己的内核版本详细信息: $ unam ...
- 第三方库openPyxl读取excel文件
import openpyxl from openpyxl.worksheet.worksheet import Worksheet def openpyxl_read(): #1.打开文件 work ...
- 给 hugo 博客添加搜索功能
起因 我的博客使用了 hugo 作为静态生成工具,自带的主题里也没有附带搜索功能.看来,还是得自己给博客添加一个搜索功能. 经过多方查找,从 Hugo Fast Search · GitHub 找到一 ...
- SpringBoot简单快速入门操作
项目类分为: dao层 server层 controller层 Mapper → Server→ controller mapper层(必须要用interface创建) 创建后,首先要在方法前加@Ma ...
- disk磁盘分区软件使用教程,磁盘扩容无损备份
前几天,因为我的笔记本电脑C盘D盘全红了,趁着双11固态降价,赶紧买了一张三星980 500g 给我的拯救者插上了,加上原来的500g,总共1T,已经够用了. 不得不说拯救者系列预留的1个M.2固态插 ...
- node 学习笔记 模块和包的管理与使用
1.前言 对于各种编程语言,代码组织是很重要的.而模块是node中的代码组织机制,node中的很多功能都以模块划分,而模块中又封装了许多方法,而且不会改变全局作用域,极大的方便了各开发者的需求. 2. ...
- Day16异常1
package com.exception.demo01;public class demo01 { public static void main(String[] args) { try{new ...
- 抓包分析 TCP 握手和挥手
前言 首先需要明确的是 TCP 是一个可靠传输协议,它的所有特点最终都是为了这个可靠传输服务.在网上看到过很多文章讲 TCP 连接的三次握手和断开连接的四次挥手,但是都太过于理论,看完感觉总是似懂非懂 ...