2014-03-02 217 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

相關問題