从python中忽略算术运算符中的表达式替换整个单词

问题描述 投票:-1回答:2

我有一个像"(addtwo*decimal*p_cost)/(cost+density)"这样的字符串表达式。 我想只更换成本,但它取代p_cost也像 - p_"replaced value"。我尝试过单词边界但没有运气请帮忙。

expr = '(addtwo*decimal*p_cost)/(cost+density)'

expr = string.replace(expr, r"\b%s\b" % str(' cost '), str(3)) not doing anything.
python str-replace
2个回答
0
投票

使用正则表达式。

import re
expr = '(addtwo*decimal*p_cost)/(cost+density)'
print(re.sub(r"\bcost\b", "3", expr))

输出:

(addtwo*decimal*p_cost)/(3+density)

0
投票
import re

expr = r'(addtwo*decimal*p_cost)/(cost+density)'

expr2 = re.sub("(?<![_])cost(?![_])","COST", expr)
print(expr2)

在正则表达式模式字符串中,在搜索词(本例中为(?<![_]))之前((?![_]))和之后(cost)的方括号中插入所有禁止替换搜索词的字符。

© www.soinside.com 2019 - 2024. All rights reserved.