So habe ich diese großen mathematischen Ausdrücke in einer Zeichenfolge gespeichert, die ich aus SymPy habe, und ich versuche es zu formatieren, so dass ich es in Mathematica verwenden kann.Regex zu ersetzen() mit [] um Funktionsargumente
Ich möchte alles, was wie 'sin(arg)'
zu Sin[arg]
aussieht, ändern, aber ich muss es auch für Cosinus arbeiten lassen. arg
kann irgendeine von diesen sein: theta1
, theta2
, theta3
, theta4
, theta5
.
Es gibt eine Tonne von anderen Klammern in der Zeichenfolge, die ich nicht ersetzen möchte, so dass es nur sin
und cos
Klammern bewirken muss.
Für S = "cos(theta1)"
Ich habe versucht:
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)
Und S
wird:
'[)'
Ich dachte, mit den Klammern um die \(
und \)
bedeuten würde es nur die spezifischen Gruppen ersetzt, aber anscheinend nicht. Gibt es eine andere Funktion als re.sub
, die ich verwenden sollte?
P.S. Gibt es eine Möglichkeit, die sin -> Sin
Ersatz in die Regex zu quetschen?
ehrfürchtig. Vielen Dank! –