Python字符串替换笔记

Python字符串替换笔记主要展示了如何在Python中替换字符串。Python中有以下几种替换字符串的方法,本文主要介绍前三种。

  1. replace方法(常用)
  2. translate方法
  3. re.sub方法
  4. 字符串切片(根据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字符串替换笔记的更多相关文章

  1. 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 ...

  2. python 字符串替换

    字符串替换可以用内置的方法和正则表达式完成.1用字符串本身的replace方法: a = 'hello word'b = a.replace('word','python')print b 2用正则表 ...

  3. python字符串替换的2种有效方法

    python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'我把a字符串里的word替换为python1用字符串本身 ...

  4. python字符串替换的2种方法

    python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'把a字符串里的word替换为python 1.用字符串本 ...

  5. [编程基础] Python格式化字符串常量f-string总结

    Python格式化字符串常量f-string总结 本文主要总结在Python中如何使用格式化字符串常量f-string(Formatted string literals).在 Python 程序中, ...

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

    说起来不怕人笑话,我今天才发现,python 中的字符串替换操作,也就是 string.replace() 是可以用正则表达式的. 之前,我的代码写法如下,粗笨: 自从发现了正则表达式也生效后,代码变 ...

  7. C#编程基础之字符串操作

    本文来源于复习基础知识的学习笔记.自用的同时希望也能帮到其他童鞋. 什么是编程语言? 计算机可以执行的指令.这些指令成为源代码或者代码 有什么用? 以人们可读可理解的方式编写指令.人们希望计算机执行指 ...

  8. 【学习笔记】第二章 python安全编程基础---python爬虫基础(urllib)

    一.爬虫基础 1.爬虫概念 网络爬虫(又称为网页蜘蛛),是一种按照一定的规则,自动地抓取万维网信息的程序或脚本.用爬虫最大的好出是批量且自动化得获取和处理信息.对于宏观或微观的情况都可以多一个侧面去了 ...

  9. [编程基础] Python模块和包使用笔记

    本文探讨Python模块和Python包,这两种机制有助于模块化编程. 模块化编程是指将大型笨拙的编程任务分解为单独的,较小的,更易于管理的子任务或模块的过程.然后可以像构建模块一样将各个模块拼凑在一 ...

随机推荐

  1. 洛谷P4513 小白逛公园 (线段树)

    这道题看起来像是线段树和最大子段和的结合,但这里求最大子段和不用dp,充分利用线段树递归的优势来处理.个人理解:线段树相当于把求整个区间的最大子段和的问题不断划分为很多个小问题,容易解决小问题,然后递 ...

  2. Spring bean装配流程和三级缓存

    马士兵 源码方法论 不要忽略源码中的注释 先梳理脉络,再深入细节 大胆猜测.小心求证 见名知意 hold on 对源码有兴趣的都是变态 为了钱! Spring IoC Spring容器帮助管理对象,不 ...

  3. 12.MongoDB系列之副本集管理

    1. 控制成员状态 1.1 把主节点变为从节点 rs.stepDown() 1.2 阻止选举 如果需要对主节点维护,不想期间其他从节点选举为主节点,则可以 rs.freeze(10000) 维护完成后 ...

  4. 【算法】基础DP

    参考资料 背包九讲 一.线性DP 如果现在在状态 i 下,它上一步可能的状态是什么. 上一步不同的状态依赖于什么. 根据上面的分析,分析出状态和转移方程.注意:dp 不一定只有两维或者一维,一开始设计 ...

  5. Windows活动目录_初识

    计算机组织形式 工作组(用户本地登录时构造SID进行权限分配): 域(统一身份验证与管理) 域注意事项 实体:域控.域用户.加入域的机子. 依赖的服务:netlogon服务 强制刷新组策略gpupda ...

  6. SystemParametersInfo函数说明

    SystemParametersinfo 返回值:如果函数调用成功,返回值非零:如果函数调用失败,那么返回值为零.若想获取更多错误信息,请调用GetLastError函数. SystemParamet ...

  7. SpringBoot 自动装配原理

    早期的Spring项目需要添加需要配置繁琐的xml,比如MVC.事务.数据库连接等繁琐的配置.Spring Boot的出现就无需这些繁琐的配置,因为Spring Boot基于约定大于配置的理念,在项目 ...

  8. Redis可视化管理工具-RedisDesktopManager

    Windows客户端,访问Redis数据库并执行一些基本操作. 链接:https://pan.baidu.com/s/1OuGqIfbpGwglC-642rECbQ 提取码:m6uo

  9. 倍福Ads协议通信测试

    测试环境:vs2015 + TC31-Full-Setup.3.1.4022.30.exe 首先需要安装TC31-Full-Setup.3.1.4022.30.exe 本例子是用本机作测试,如果使用远 ...

  10. Vue3 企业级优雅实战 - 组件库框架 - 5 组件库通用工具包

    该系列已更新文章: 分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率 开箱即用 yyg-cli 脚手架:快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 ...