我有一个像"(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.
使用正则表达式。
import re
expr = '(addtwo*decimal*p_cost)/(cost+density)'
print(re.sub(r"\bcost\b", "3", expr))
输出:
(addtwo*decimal*p_cost)/(3+density)
import re
expr = r'(addtwo*decimal*p_cost)/(cost+density)'
expr2 = re.sub("(?<![_])cost(?![_])","COST", expr)
print(expr2)
在正则表达式模式字符串中,在搜索词(本例中为(?<![_])
)之前((?![_])
)和之后(cost
)的方括号中插入所有禁止替换搜索词的字符。