Seite 1 von 1

Suchen und Ersetzen [GELÖST]

Verfasst: Do 2. Jan 2025, 11:33
von Mau
Liebe ExpertInnen,
es geht - mal wieder - um Suchen und Ersetzen mit regulären Ausdrücken.
Ich möchte nach Sätzen suchen, die nach dem abschließenden Punkt des vorangehenden Satzes ohne Leerzeichen, also direkt mit einem Buchstaben oder einer Zahl beginnt, und das trennende Leerzeichen nach dem Punkt einzufügen. Wie mache ich das?
Als regulärer Ausdruck steht der Punkt ja für einen beliebigen Buchstaben.

Re: Suchen und Ersetzen

Verfasst: Do 2. Jan 2025, 15:38
von miesepeter
Mau hat geschrieben:
Do 2. Jan 2025, 11:33
Als regulärer Ausdruck steht der Punkt ja für einen beliebigen Buchstaben.
Entweder maskieren: \.
oder
in Klammern ansprechen: [.]

Wenn Abkürzungen wie etwa z._B._ richtig geschrieben wurden, dann wirst du wohl kein zweites Leerzeichen einfügen wollen. Und wenn ein Satz am Absatzende steht, wäre die Ergänzung mit einem Leerzeichen auch nicht "zielführend". Punkt: Das dem Satzzeichen folgende Zeichen müsste also ein großer Buchstabe oder evtl. auch eine Zahl sein? Zu bedenken wäre auch, ob andere Satzzeichen (:?;!,) auch betroffen sein sollten... (Folgezeichen könnte ein Kleinbuchstabe sein. )
Um einen Punkt mit einem folgenden Zeichen (Großbuchstabe oder Zahl) zu suchen, könnte man mit regulären Ausdrücken wie folgt vorgehen:
----------------------
Suchen (Punkt)

Code: Alles auswählen

\.([A-Z0-9])
Ersetzen ----------------------
Suchen (Interpunktionszeichen)

Code: Alles auswählen

([!?:;,.])([A-Za-z0-9])
oder

Code: Alles auswählen

(\p{P})([A-Za-z0-9])
Ersetzen

Code: Alles auswählen

$1 $2
Übersichtliche Darstellung regulärer Ausdrücke:
https://www.data2type.de/xml-xslt-xslfo ... henklassen
LibreOffice verwendet die von ICU dargestellten Regex-Ausführungen:
https://unicode-org.github.io/icu/userg ... egexp.html

Re: Suchen und Ersetzen

Verfasst: Do 2. Jan 2025, 18:02
von Mau
Lieber miesepeter,
wie immer kommt deine Antwort schnell und präzise. Ein paar Fragen habe ich noch zur Syntax.
miesepeter hat geschrieben:
Do 2. Jan 2025, 15:38
Entweder maskieren: \.
Das sieht recht einfach aus, auch wenn der Befehl die Satzanfänge mit Zahlen wohl übergeht, wenn ich das richtig sehe.
miesepeter hat geschrieben:
Do 2. Jan 2025, 15:38
oder
in Klammern ansprechen: [.]
Nach den Beispielen unten zu schließen, müsste der Ausdruck aber noch in runde Klammern eingeschlossen werden - richtig?
miesepeter hat geschrieben:
Do 2. Jan 2025, 15:38
Wenn Abkürzungen wie etwa z._B._ richtig geschrieben wurden, dann wirst du wohl kein zweites Leerzeichen einfügen wollen. Und wenn ein Satz am Absatzende steht, wäre die Ergänzung mit einem Leerzeichen auch nicht "zielführend".
Richtig. So etwas sollte man in einem umfangreichen Text vorsichtshalber sowieso nicht pauschal, sondern nur Schritt für Schritt ersetzen.
miesepeter hat geschrieben:
Do 2. Jan 2025, 15:38
Um einen Punkt mit einem folgenden Zeichen (Großbuchstabe oder Zahl) zu suchen, könnte man mit regulären Ausdrücken wie folgt vorgehen:
----------------------
Suchen (Punkt)

Code: Alles auswählen

\.([A-Z0-9])
Ersetzen ----------------------
Suchen (Interpunktionszeichen)

Code: Alles auswählen

([!?:;,.])([A-Za-z0-9])
oder

Code: Alles auswählen

(\p{P})([A-Za-z0-9])
Was macht der Computer mit der Zeichenfolge \p{P}?
miesepeter hat geschrieben:
Do 2. Jan 2025, 15:38
Ersetzen

Code: Alles auswählen

$1 $2
Das verstehe ich so, dass die Ausdrücke in den runden Klammern für das "Ersetzen"-Fenster durch $-Zeichen als durchnummerierte Platzhalter vertreten werden. (Auf der Seite, die du darunter verlinkt hast, steht dazu leider nichts.)

Einstweilen danke, und alles Gute zum neuen Jahr.
Mau

Re: Suchen und Ersetzen

Verfasst: Fr 3. Jan 2025, 00:16
von miesepeter
Mau hat geschrieben:
Do 2. Jan 2025, 18:02
Was macht der Computer mit der Zeichenfolge \p{P}?
Das ist z. B. in der oben verlinkten Übersicht zu finden:
Mau hat geschrieben:
Do 2. Jan 2025, 18:02
Nach den Beispielen unten zu schließen, müsste der Ausdruck aber noch in runde Klammern eingeschlossen werden - richtig?
Die runden Klammern werden benötigt, um deren Inhalt beim Ersetzen wieder abzubilden. Die Reihenfolge wird mit den Platzhaltern $1, $2, $3 ... berücksichtigt. Das Verfahren wird schon irgendwo bei den verlinkten Seiten zu finden sein.

Du kannst natürlich auch die Writer-Hilfe aufrufen (hier online): https://help.libreoffice.org/latest/de/ ... n0000.html Dort nach regulären Ausdrücken suchen. Auch hier findest du eine Menge Informationen.

Danke für deine lieben Grüße und schöne Zeit!