re.search - Exception

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main

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 :)
karolus
User
Beiträge: 140
Registriert: Samstag 22. August 2009, 22:34

Hallo
Vmtl. musst du auch die schliessende Klammer maskieren

Code: Alles auswählen

re.search('(ln|log|log)\(x\)', 'ln(x)')
Gruß Karo
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main

Was zur Hölle? Ok, nun funktionierts, danke. Ich bin davon ausgegangen, dass ein Backslash für alle Zeichen dahinter gilt.

Vielen Dank.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

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.
Bottle: Micro Web Framework + Development Blog
Antworten