📜  在python中替换多个不同的子字符串(1)

📅  最后修改于: 2023-12-03 15:07:55.886000             🧑  作者: Mango

在Python中替换多个不同的子字符串

在Python中,如果我们要对一个字符串中的多个不同的子串进行替换,通常有两种做法:

  1. 使用多次 replace 方法逐一替换
  2. 使用正则表达式 re.sub 方法
使用多次 replace 方法逐一替换

在这种做法中,我们使用字符串的 replace 方法来逐一替换每个子串。例如,我们要把字符串中的 "foo" 和 "bar" 全部替换为 "baz",可以使用以下代码:

s = "hello foo world bar"
s = s.replace("foo", "baz").replace("bar", "baz")
print(s)

上述代码输出结果为:

hello baz world baz

这种做法的缺点是,如果要替换的子串很多,代码会变得很冗长。

使用正则表达式 re.sub 方法

在这种做法中,我们使用正则表达式的 re.sub 方法来一次性替换多个子串。例如,我们要把字符串中的 "foo" 和 "bar" 全部替换为 "baz",可以使用以下代码:

import re

s = "hello foo world bar"
s = re.sub("foo|bar", "baz", s)
print(s)

上述代码输出结果为:

hello baz world baz

这种做法的优点是,可以一次性替换多个子串,代码更简洁。缺点是,如果要替换的子串中有一些是正则表达式的特殊字符,需要对其进行转义。

总结:

  • 如果要替换的子串只有几个,可以使用多次 replace 方法逐一替换。
  • 如果要替换的子串很多,可以使用正则表达式的 re.sub 方法一次性替换。