用Python替换字符串

时间:2014-05-20 07:21:20

标签: python string replace str-replace

我有一个字符串:

string = '17 121221 17 17939 234343 17 39393'

如何确保在使用string.replace('17','sth')时只更换17个(但不是17,这是17939的一部分)?

我想要一个输出字符串,如:

string = 'sth 121221 sth 17939 234343 sth 39393'

干杯, 凯特

2 个答案:

答案 0 :(得分:3)

您可以使用regex

完成此操作
import re

string = '17 121221 17 17939 234343 17 39393'

>>> print re.sub(r'(\D|^)17(\D|$)', r'\1sth\2', string)
sth 121221 sth 17939 234343 sth 39393

答案 1 :(得分:1)

更容易使用和防止故障:

>>> string = '17 121221 17 17939 234343 17 39393'
>>> ' '.join( 'sth' if i == '17' else i for i in string.split() )
'sth 121221 sth 17939 234343 sth 39393'

当简单的split/join足够时,你不应该使用正则表达式。