1

我正在尝试使用以下 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-- 问题:我不想改变“文本”。

有人能帮我吗?

4

2 回答 2

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")
于 2012-08-15T10:07:59.727 回答
0

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

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

于 2012-08-15T10:04:26.803 回答