Seite 1 von 1

re.search - Exception

Verfasst: Mittwoch 16. Dezember 2009, 19:56
von Markus12
Hi again,
Habe es mir zur Aufgabe gemacht ein Programm zu schreiben, dass Terme auflösen bzw. vereinfachen kann. Angefangen habe ich nun mit dem re-Modul, um Ausdrücke herauszufiltern.

Leider klappt schon mein erster Versuch nicht und ich habe keine Ahnung, was der überhaupt von mir will bzw. was re einfällt mir so eine Exception zu geben :twisted:

Erkennen möchte ich eine Logarithmus-Funktion, egal welche.

Code: Alles auswählen

re.search('(ln|log|log)\(x)', 'ln(x)')
Sagen tut er mir:

Code: Alles auswählen

sre_constants.error: unbalanced parenthesis
Wenn ich den Backslash weglasse, erkennt der aber nun mal nicht die Klammern, und da sie aber da sein müssen, dachte ich, ich könnte sie durch den Backslash als Sonderzeichen markieren...

Kann mir jemand sagen, was ich falsch mache!?

Grüße Markus :)

Verfasst: Mittwoch 16. Dezember 2009, 20:02
von karolus
Hallo
Vmtl. musst du auch die schliessende Klammer maskieren

Code: Alles auswählen

re.search('(ln|log|log)\(x\)', 'ln(x)')
Gruß Karo

Re: re.search - Exception

Verfasst: Mittwoch 16. Dezember 2009, 20:02
von cofi
Markus12 hat geschrieben:Kann mir jemand sagen, was ich falsch mache!?
Steht doch da. Aber ich will mal nich so sein. Wenn du die eine Klammer escapest, solltest du die andere ebenfalls escapen.

Verfasst: Mittwoch 16. Dezember 2009, 20:04
von Markus12
Was zur Hölle? Ok, nun funktionierts, danke. Ich bin davon ausgegangen, dass ein Backslash für alle Zeichen dahinter gilt.

Vielen Dank.

Verfasst: Mittwoch 16. Dezember 2009, 20:52
von Defnull
Markus12 hat geschrieben:Ich bin davon ausgegangen, dass ein Backslash für alle Zeichen dahinter gilt.
Das ist eigentlich nie so. Bei keiner, die ich kenne.