Python - 在括号之间获取字符串

时间:2013-07-03 00:25:45

标签: python string substitution

示例(假设这是一个字符串):

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)

任何帮助都将不胜感激。

2 个答案:

答案 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)

有人可能会想出更好的表达方式;我在正则表达式上并不那么出色。但它有效:)。