示例(假设这是一个字符串):
0.1+0.5*(sign(t-0.5)+1)*t + sign(t+0.8)
我必须在符号函数的parantheses(在这种情况下是字符串)之间得到字符串't-0.5'和't + 0.8',这样在替换后我可以得到例如:
0.1+0.5*(copysign(1,t-0.5)+1)*t + copysign(1,t+0.8)
任何帮助都将不胜感激。
答案 0 :(得分:1)
你的问题不是很清楚,但如果你想要针对这个特定情况的解决方案,那么它就是:
>>> s = '0.1+0.5*(sign(t-0.5)+1)*t + sign(t+0.8)'
>>> s.replace('sign(', 'copysign(1,')
'0.1+0.5*(copysign(1,t-0.5)+1)*t + copysign(1,t+0.8)'
如果你想要更普通的替代品,那可能会非常棘手。
答案 1 :(得分:1)
您可以使用正则表达式:
>>> import re
>>> s = '0.1+0.5*(sign(t-0.5)+1)*t + sign(t+0.8)'
>>> print re.sub(r'sign\((t.*?)\)', r'copysign(1,\1)', s)
0.1+0.5*(copysign(1,t-0.5)+1)*t + copysign(1,t+0.8)
有人可能会想出更好的表达方式;我在正则表达式上并不那么出色。但它有效:)。