Python中的字符串替换方法有多种,下面我会详细讲解其中的三种:replace()、re.sub()和string.Template.substitute()。
1. replace()
replace() 方法用于将字符串中一些子串替换成其他子串。它的基本语法如下:
str.replace(old, new[, count])
其中,old是要被替换的旧子串,new是要替换成的新子串,count是可选参数,表示最多替换几处。如果不指定count参数,则会将所有的旧子串替换成新子串。replace() 方法返回一个新的字符串,原字符串不会被修改。如下面的例子所示:
str = "hello world"
new_str = str.replace("hello", "hi")
print(new_str)
输出结果为:
hi world
可以看到,原字符串"hello world"中的"hello"被替换成了"hi"。
2. re.sub()
re.sub() 方法是Python中的正则表达式字符串替换方法,它可以使用正则表达式匹配形式多样的旧子串,并将其替换成新子串。它的基本语法如下:
re.sub(pattern, repl, string, count=0, flags=0)
其中,pattern是匹配旧子串的正则表达式,repl是要替换成的新子串(可以是字符串、函数或lambda表达式),string是原字符串,count和flags都是可选参数。如果不指定count参数,则会将所有匹配上的旧子串全部替换成新子串。如下面的例子所示:
import re
str = "hello123world456"
new_str = re.sub(r'\d+', "", str)
print(new_str)
输出结果为:
helloworld
可以看到,原字符串"hello123world456"中的数字子串被全部删除了。
3. string.Template.substitute()
string.Template.substitute() 方法是Python中的字符串模板替换方法,它比较简单易用,适用于一些简单的字符串模板替换需求。它的基本语法如下:
template.substitute(mapping, **kwds)
其中,template是一个包含$-占位符的字符串模板,mapping和kwds都是可选参数,用于替换模板中的占位符。如下面的例子所示:
from string import Template
name = "Tom"
age = 18
str_template = Template("My name is $name and I am $age years old")
new_str = str_template.substitute(name=name, age=age)
print(new_str)
输出结果为:
My name is Tom and I am 18 years old
可以看到,$-占位符被变量值替换后,形成了一个新的字符串。
以上三种方法是Python中常用的字符串替换方法,它们可以满足不同场景下的字符串替换需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python文件中的字符串替换方法 - Python技术站