2014-03-02 219 views
1

我想在数学表达式中替换某个变量名称,同时避免替换函数名称。Python:如何替换某些字符所包含的字符串

例如,用下面的n

sin(2 pi*n d)" -> "sin(2 pi*REPL d)但不是:siREPL(2 pi*REPL d)

我的想法是,以检查是否SUBSTR是由特殊字符(' ''(''*'等)在一侧封闭,但我没有把它放在正则表达式或Python代码中。

任何想法?

+1

尝试字界\ b –

回答

1

使用单词边界(\b

>>> import re 
>>> re.sub(r'\bn\b', 'REPL', 'sin(2 pi*n d)') 
'sin(2 pi*REPL d)' 

按照re module documentation

\b

匹配空字符串,但只在一个单词的开头或结尾。 单词被定义为一个字母数字或下划线字符序列,因此单词的末尾用空格或 非字母数字,非下划线字符表示。需要注意的是正式,\ b为W,或之间\ A \ W和\ W字符(或副 反之亦然)之间定义为边界 和字符串的开始/结束,...

+0

太好了,谢谢! – user3370429

相关问题