Python:如何替换某些字符所包含的字符串

时间:2014-03-02 10:31:51

标签: python regex string

我想在数学表达式中替换某个变量名,同时避免替换函数名。

例如,在替换n之后:

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

我的想法是检查substr是否被特殊字符(' ''(''*'等)包围在一边但是我没有把它放在regex或python中码。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用字边界(\b

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

根据re module documentation

  

\b

     

匹配空字符串,但仅匹配单词的开头或结尾。   单词被定义为字母数字或下划线的序列   字符,所以单词的结尾用空格或a表示   非字母数字,非下划线字符。请注意,\ b是正式的   定义为\ w和\ W字符之间的边界(或副   反之亦然,或者在\ w和字符串的开头/结尾之间......