[gelöst] RegExp: Regulärer Ausdruck zu gierig

Das Textverarbeitungsprogramm

Moderator: Moderatoren

Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

[gelöst] RegExp: Regulärer Ausdruck zu gierig

Beitrag von Hiker »

Hallo,

Ich bekomme regelmäßig Texte mit durch {} markierten Sequenzen und möchte diese Sequenzen durch Fettdruck hervorheben.
Z.B.:

Code: Alles auswählen

Text {Eins} Text {Zwei Zwei } Text {Dreierlei} Text {Vier Vier Vier Vier} Text

Es gibt keine Beschränkung bei den Bestandteilen, die Hervorhebungen können so Kurz wie a) sein oder auch einen kompletten Satz
bilden. Einzige Regel ist: Die Elemente sind NICHT verschachtelt und {} kommt sonst nicht vor.

Eigentlich lässt sich das einfach mit einem regulären Ausdruck suchen: \{(.*)\} und durch $1 bei Format = fett ersetzen.
Allerdings ist der Ausdruck zu gierig und macht alles von {Eins bis Vier} fett:
Text Eins} Text {Zwei Zwei } Text {Dreierlei} Text {Vier Vier Vier Vier Text
Das gewünschte Ergebnis wäre:
Text Eins Text Zwei Zwei Text Dreierlei Text Vier Vier Vier Vier Text
Ich weiß daß es z.B. in Perl die Möglichkeit gibt auf non-greedy umzuschalten, habe aber bei Open/LibreOffice
nichts davon gelesen. Kennt jemand eine entsprechende Möglichkeit oder ein eleganteres Workaround als einen
Export nach Perl?

MfG, Jörn
Zuletzt geändert von Hiker am Mi, 23.09.2020 08:22, insgesamt 1-mal geändert.
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: RegExp: Regulärer Ausdruck zu gierig

Beitrag von Hiker »

... die Umschaltmöglichkeit habe ich zwar nicht gefunden,
aber als Workaround funktioniert das Suchmuster

Code: Alles auswählen

\{([^\}]*)\}

also "Klammer auf" gefolgt von beliebig vielen "nicht Klammer zu" und einem "Klammer zu".

Ich lasse die Frage noch ein bischen offen. Eventuell fällt ja noch jemandem was
schlaueres ein...

mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Benutzeravatar
miesepeter
********
Beiträge: 2097
Registriert: Sa, 10.05.2008 15:05
Wohnort: Bayern

Re: RegExp: Regulärer Ausdruck zu gierig

Beitrag von miesepeter »

Hi Jörn,

Code: Alles auswählen

\{.*?\}
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: [gelöst] RegExp: Regulärer Ausdruck zu gierig

Beitrag von Hiker »

Merci beaucoup.

Das Fragezeichen hatte ich nur noch für Einstellungen wie (?i auf der Rechnung...

Mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Antworten