OOo RegEX

Software besorgen und anwenden
Post Reply
Message
Author
Horn

OOo RegEX

#1 Post by Horn »

Hi!

Open Office RegEX.

Habe eine Tabelle in der folgende Daten drin stehen.

Bla bla K05
Yes no K17

usw.

Ich würde gerne das K05 oder K17 oder KIrgendwas das immer zuletzt steht gerne weghaben. Nur scheint das mit OOo's RegEX nicht zu funktionieren. In der Hilfe und hier
http://www.easylinux.de/Artikel/ausgabe ... -oo-tipps/
steht was, aber ich komme nicht klar damit.

Mit Suchen und Ersetzen arbeite ich, Reguläre Ausdrücke ist an.

Der Ausdruck der für mich logisch erscheint:

.*K$
Kein oder beliebig viele K mit egal was für Zeichen anschliessend am Zeilenende.

Findet aber nichts.

Das abgeschnittene wollte ich dann in die nächste Spalte eintragen, aber das ist glaube ich viel zu kompliziert.

Nur der findet schon erst garnichts und somit muss ich die alle von Hand löschen.
Das dauert zu lange und ist sinnlos, wenn es Suchen und Ersetzen gibt.

Danke!

Gruß.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

Re: OOo RegEX

#2 Post by Janka »

Horn wrote: Bla bla K05
Yes no K17

---Schnipp---
Ich würde gerne das K05 oder K17 oder KIrgendwas das immer zuletzt steht gerne weghaben. Nur scheint das mit OOo's RegEX nicht zu funktionieren.
---Schnipp---
.*K$
Kein oder beliebig viele K mit egal was für Zeichen anschliessend am Zeilenende.
---Schnipp---
Findet aber nichts.
Logisch, denn dein Ausdruck findet alles, was ein "K" als letztes Zeichen besitzt.

Um das zu tun, was du oben schreibst, brauchst du den Ausdruck K.*?$. Ich weiß jetzt aber nicht, ob OO.org non-greedy Quantifiers wie ".*?" unterstützt.
Das abgeschnittene wollte ich dann in die nächste Spalte eintragen, aber das ist glaube ich viel zu kompliziert.
Dafür musst du die Spalte verdoppeln und dann auf die beiden Spalten unterschiedliche Ersetzungen anwenden.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Horn

#3 Post by Horn »

Hi!
Danke, das klappt sogar.

Wenn ich das also richtig verstanden habe sucht dieser Ausdruck nach
einem K mit anschl. beliebigen EINEM Zeichen (Punkt) und davon dann keines
(Stern) oder mehr, und das am Absatzende.

Ich habe das Fragezeichen wegen Redundanz dann mal weg gelassen und
es funktioniert auch.

1 Stunde mit Suchen verbracht und trotzdem nichts kapiert.

Mit den doppelten Spalten verstehe ich zwar noch nicht aber das bekomme
ich hoffentlich auch noch raus.

Nochmals Danke.

PS: OOo + non greedy
http://www.openoffice.org/issues/show_bug.cgi?id=46015

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

Horn wrote: Wenn ich das also richtig verstanden habe sucht dieser Ausdruck nach
einem K mit anschl. beliebigen EINEM Zeichen (Punkt) und davon dann keines
(Stern) oder mehr, und das am Absatzende.
Nein, dieser Ausdruck sucht nach einem K, gefolgt von beliebig
*wenigen* beliebigen Zeichen bis zum Zeilenende.
Ich habe das Fragezeichen wegen Redundanz dann mal weg gelassen und es funktioniert auch.
Nein, falsch. Das Fragezeichen ist da nicht redundant! Wenn du es weglässt, sucht der Ausdruck nach beliebig *vielen* beliebigen Zeichen bis zum Zeilenende. Das bedeutet effektiv, dass ab dem *ersten* K alles weggelöscht wird, nicht ab dem *letzten*.
Mit den doppelten Spalten verstehe ich zwar noch nicht aber das bekomme ich hoffentlich auch noch raus.
Das ist die simpelste Vorgehensweise, wenn man nur die Suchen&Ersetzen-Box benutzen will. Da du ja damit immer nur eine Ersetzung (hier der Leerstring) festlegen kannst, musst du die Daten logischerweise zweimal vorliegen haben, und auf beide Sätze unterschiedliche Suchen&Ersetzen-Ausdrücke anwenden.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Horn

#5 Post by Horn »

Na gut, dann muss ich wohl mal ein wenig RegEx üben, auch wenn ich es hasse wie die Pest. Man braucht es einfach zu oft.

Mein Problem mit den Spalten hat sich dann auch erledigt, wenn auchgleich ich es noch nicht probiert habe. Aber ich habe tatsächlich was im OOo Doku gefunden, nur durch Zufall aber ich habe es jetzt.

Der abgeschnittene Teil soll in die nächste Spalte gesetzt werden und nicht nur einfach Ersetzt werden durch was auch immer.

Code: Select all

Krd K04
Szw K19
usw.
K04 + K19 + Ksowieso wird abgeschnitten und anschliessend das abgeschnittene in die nächste Spalte geschrieben.

Hier mal die URL falls es einen interessiert.

http://ooodoku.de/CalcFunktionenText/Zeichenketten

Noch mal vielen Dank für die Mühe.

PS: Es gibt Sachen die man mit Google nur schwer findet, weil man nicht genau weiss wonach man Suchen soll.

Post Reply