所以我把这个巨大的数学表达式存储在一个字符串中,我从SymPy那里得到的,我正在尝试格式化它,以便我可以在Mathematica中使用它。你知道吗
我想把所有看起来像'sin(arg)'
的东西都改成Sin[arg]
,但我还需要让它对余弦起作用。arg
可以是以下任何一种:theta1
、theta2
、theta3
、theta4
、theta5
。你知道吗
字符串中还有很多我不想替换的括号,所以它只需要影响sin
和cos
括号。你知道吗
为了S = "cos(theta1)"
,我试过:
S = S.replace("cos", "Cos")
S = S.replace("sin", "Sin")
S = re.sub(r"Sin|Cos(\()theta1|theta2|theta3|theta4|theta5", "[", S)
S = re.sub(r"Sin|Cos\(theta1|theta2|theta3|theta4|theta5(\))", "]", S)
而S
变成:
'[)'
我认为在\(
和\)
之间使用括号意味着它只替换那些特定的组,但显然不是。除了re.sub
之外,我还应该使用其他函数吗?你知道吗
另外,有没有办法将sin -> Sin
替换内容压缩到regex中?你知道吗
假设您的参数只能是
theta1
到theta5
,您只需进行替换即可与
以及
与
\1
是一个backreference,它从原始字符串中第一个匹配的带圆括号的组中获取值,在本例中是您的参数。你知道吗但我同意乔兰的回答。你知道吗
我想。。。也许 吧。。。你知道吗
相关问题 更多 >
编程相关推荐