我想在数学表达式中替换某个变量名,同时避免替换函数名。
例如,在替换n
之后:
sin(2 pi*n d)" -> "sin(2 pi*REPL d)
但不是:siREPL(2 pi*REPL d)
我的想法是检查substr是否被特殊字符(' '
,'('
,'*'
等)包围在一边但是我没有把它放在regex或python中码。
有什么想法吗?
答案 0 :(得分:1)
使用字边界(\b
)
>>> import re
>>> re.sub(r'\bn\b', 'REPL', 'sin(2 pi*n d)')
'sin(2 pi*REPL d)'
\b
匹配空字符串,但仅匹配单词的开头或结尾。 单词被定义为字母数字或下划线的序列 字符,所以单词的结尾用空格或a表示 非字母数字,非下划线字符。请注意,\ b是正式的 定义为\ w和\ W字符之间的边界(或副 反之亦然,或者在\ w和字符串的开头/结尾之间......