选择性python字符串替换

时间:2012-08-15 10:01:33

标签: python string function replace pi

我正在尝试使用以下Python函数将pi替换为math.pi

def cleanup(x):
  return x.replace("pi", "math.pi")

我有以下字符串:

a = "2*pi"
b = "the pink elephant"

cleanup(a)的输出为:2*math.pi - 效果很好!

cleanup(b)的输出为the math.pink elephant - 问题:我不希望“文本”发生变化。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

您正在寻找正则表达式,尤其是“字边界”(\b)断言:

import re
print re.sub(r'\bpi\b', 'math.pi', "2*pi")
print re.sub(r'\bpi\b', 'math.pi', "the pink elephant")

答案 1 :(得分:0)

听起来你需要一个更复杂的过滤器,你应该看看正则表达式,它有一个内置于Python的模块

http://docs.python.org/library/re.html