翼度科技»论坛 编程开发 python 查看内容

Python字符串替换的3种方法

5

主题

5

帖子

15

积分

新手上路

Rank: 1

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

  • replace方法(常用)
  • translate方法
  • re.sub方法
  • 字符串切片(根据Python字符串切片方法替换字符)
1.replace方法

Python replace方法把字符串中的old(旧字符串) 替换成new(新字符串),如果指定第三个参数max,则设置替换次数不超过 max 次。
  1. str.replace(old, new[, max])
复制代码
示例1
在该示例中,出现的两个单词Hello都被替换为Hi。
  1. #原字符
  2. msg = "Hello world! Hello Python!"
  3. # 替换字符,字符串直接调用replace方法
  4. msg2 = msg.replace('Hello', 'Hi')
  5. print(msg2)
  6. #输出
  7. Hi world! Hi Python!
复制代码
示例2
可以直接str.replace方法。它将我们进行替换的字符串作为第一个参数。结果和示例1一样。
  1. msg = "Hello world! Hello Python!"
  2. msg2 = str.replace(msg, 'Hello', 'Hi')
  3. print(msg2)
  4. #输出
  5. Hi world! Hi Python!
复制代码
示例3
我们可以用换行符替换每个逗号,并设置替换次数
  1. data = "1,2,3,4,5"
  2. # 替换次数为3次
  3. data2 = data.replace(',', '\n', 3)
  4. print(data2)
  5. #输出
  6. 1
  7. 2
  8. 3
  9. 4,5
复制代码
示例4
在该示例中,我们替换最后一次出现的单词Hello。需要结合Python rfind()方法。rfind()方法是指返回字符串最后一次出现的位置。
  1. msg = "Hello world! Hello Python!"
  2. # Python rfind()返回字符串最后一次出现的位置
  3. idx = msg.rfind("Hello")
  4. print(idx)
  5. # 提取前一部分字符不替换,取后一部分字符进行替换
  6. # 这里用到了字符串切片的方式
  7. msg2 = msg[:idx] + str.replace( msg[idx:] , "Hello", "Hi")
  8. print(msg2)
  9. #输出
  10. 13
  11. Hello world! Hi Python!
复制代码
示例5
我们可以将replace方法链接起来进行多次替换。
  1. msg = "Hello world! Hello Python!"
  2. msg2 = msg.replace('Hello', 'Hi').replace('!','.')
  3. print(msg2)
  4. #输出
  5. Hi world. Hi Python.
复制代码
2.translate方法

Python的translate函数与replace函数一样,用于替换字符串的一部分。Translate只能处理单个字符,但translate可以同时进行多个替换任务。在使用translate函数进行转换之前。需要一个翻译表table,翻译表用于表示字符的替换关系,这个翻译表可以通过maketrans()方法获得。这个翻译表可翻译字符数为256,翻译表中的字符都要包含在ASCII码表(含扩展)中。translate()方法语法为:
  1. str.translate(table)
复制代码
示例1
  1. msg = "Hello world! Hello Python!"
  2. # intab中的字符与outtab中的字符一一对应
  3. intab = "aeiou"
  4. outtab = "12345"
  5. # 制作翻译表
  6. trantab = str.maketrans(intab, outtab)   
  7. # trantab中的字符都会用ASCII码表示
  8. print(trantab)
  9. #Python小白学习交流群:711312441
  10. msg2 = msg.translate(trantab)
  11. print(msg2)
  12. #输出
  13. {97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
  14. H2ll4 w4rld! H2ll4 Pyth4n!
复制代码
3.re.sub 替换字符串

我们可以使用正则表达式来替换字符串。Python的re库就是常用的正则表达式匹配库(建议学一学很有用)。re库使用见模式匹配与正则表达式笔记。这里主要使用re.sub函数替换字符串。re.sub()方法需要传入两个参数。第一个参数是一个字符串,用于取代发现的匹配。第二个参数是一个字符串,即正则表达式。sub()方法返回替换完成后的字符串。
示例1
  1. import re
  2. msg = "Hello world! Hello Python!"
  3. # 设置要替换的字符
  4. namesRegex = re.compile(r'Hello')
  5. # 用'Hi'替换msg中已经设置好要替换的字符
  6. namesRegex.sub('Hi', msg)
  7. #输出
  8. 'Hi world! Hi Python!'
复制代码
来源:https://www.cnblogs.com/python1111/p/17412458.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具