Regex-Problem mit Klammern

masmin

Mitglied
Hallo, ich habe folgendes Problem:

ich suche einen Regex, welcher mir den Text zwischen den beiden äußeren Klammern matcht.

ein einfaches Beispiel wäre dieses:
Text: bla bla (bla, bla, bla) bla
Regex: (\((.*?)\))
Match: (bla, bla, bla)

Das ist soweit kein Problem, aber der Regex müßte auch folgenden Fall beherrschen:
Text: bla bla (bla, bla(), bla) bla
Match müßte nun so aussehen: (bla, bla(), bla)
Ich krieg hierfür aber einfach keinen passenden Regex hin.

Kann mir jemand helfen?
 
Entferne einfach das Fragezeichen. Das sorgt nämlich dafür, dass der vorangesetzte Ausdruck nicht gierig ist.
 
Das gibt leider nicht das gewünschte Ergebnis aus. Ich geh mal noch etwas näher auf das Problem ein

der String könnte wie folgt aussehen:
bla (bla, bla(), bla) bla (blub(hipphipp), blub, blub), (hopp, hopp, hopp)
der Regex soll mir nun folgendes matchen:
1: (bla, bla(), bla)
2: (blub(hipphipp), blub, blub)
3: (hopp, hopp, hopp)

Wenn ich das Fragezeichen jetzt entferne sieht die Ausgabe so aus:
1: (bla, bla(), bla) bla (blub(), blub, blub), (hopp, hopp, hopp)
und so nützt mir das nichts
 
Zuletzt bearbeitet:
Ich erkenne da kein Muster in deinem Beispiel, somit ist das unlösbar würde ich sagen !?
Soweit ich weis, kann ein RegEx nur auf eine Zeichenkette angewendet werden die ein strukturiertes Muster hat bsp. Email usw.
Bei deinem Beispiel ist keines zu erkennen, willkürlich irgendwelche Ergebnisse.
 
Na das Muster ist doch gut zu erkennen

öffnende Klammer
Text
schließende Klammer

Haken an der Sache ist eben nur, dass es in dem Text auch noch Klammern geben kann und dass es mehrere dieser Muster in einem Text geben kann.
 
Wahnsinn wieder was gelernt, nichts ist unmöglich :-)

Darf ich fragen wofür der Doppelpunkt steht ?
Das Zeichen habe ich bei keiner Dokumentation gefunden.
 
Zurück