脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python中的字符串替换操作示例

Python中的字符串替换操作示例

2020-08-30 09:33SpikeKing Python

这篇文章主要介绍了Python中的字符串替换操作示例,包括一则使用字符串模板string.Template的例子及一则使用正则表达式的例子,需要的朋友可以参考下

字符串替换(interpolation), 可以使用string.Template, 也可以使用标准字符串的拼接.
string.Template标示替换的字符, 使用"$"符号, 或 在字符串内, 使用"${}"; 调用时使用string.substitute(dict)函数.
标准字符串拼接, 使用"%()s"的符号, 调用时, 使用string%dict方法.
两者都可以进行字符的替换.

代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# -*- coding: utf-8 -*-
 
import string
 
values = {'var' : 'foo'}
 
tem = string.Template('''''
Variable : $var
Escape : $$
Variable in text : ${var}iable
''')
 
print 'TEMPLATE:', tem.substitute(values)
 
str = '''''
Variable : %(var)s
Escape : %%
Variable in text : %(var)siable
'''
 
print 'INTERPOLATION:', str%values

输出:

?
1
2
3
4
5
6
7
8
9
TEMPLATE: 
Variable : foo
Escape : $
Variable in text : fooiable
 
INTERPOLATION: 
Variable : foo
Escape : %
Variable in text : fooiable

连续替换(replace)的正则表达式(re)
字符串连续替换, 可以连续使用replace, 也可以使用正则表达式.
正则表达式, 通过字典的样式, key为待替换, value为替换成, 进行一次替换即可.

代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-
 
import re
 
my_str = "(condition1) and --condition2--"
print my_str.replace("condition1", "").replace("condition2", "text")
 
rep = {"condition1": "", "condition2": "text"}
rep = dict((re.escape(k), v) for k, v in rep.iteritems())
pattern = re.compile("|".join(rep.keys()))
my_str = pattern.sub(lambda m: rep[re.escape(m.group(0))], my_str)
 
print my_str

输出:

?
1
2
() and --text--
() and --text--

延伸 · 阅读

精彩推荐