[GELÖST] Ganze Zelle ersetzen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [GELÖST] Ganze Zelle ersetzen

Re: [GELÖST] Ganze Zelle ersetzen

von Karolus » Mo, 17.02.2014 23:34

Hallo
Das mit den Implementierungen war mir zwar klar, neu ist mir aber, das es da selbst zwischen LibreOffice und OpenOffice bereits Unterschiede gibt.
Die gab es auch nur temporär - weil LibreOffice inzwischen die von Herbert Duerr/Apache für AOO adaptierte ICU-RegExEngine übernommen hat. Nachzulesen hier unter dem Titel: Options General

Karolus

Re: [GELÖST] Ganze Zelle ersetzen

von der.matze » Mo, 17.02.2014 18:29

lorbass hat geschrieben:
der.matze hat geschrieben:Das ist aber OpenOffice-spezifisch, oder besitzt das allgemeine Gültigkeit bei regulären Ausdrücken?
Die diversen RegEx-Engines verfügen zwar über gewisse Kern-Konstrukte, die allen Implementierungen gemein sind, driften darüber hinaus aber insbesondere, was die Vollständigkeit der Implementierungen betrifft, mehr oder weniger zügig auseinander. POSIX-RegEx sind was anderes als Perl-RegEx, Apache OpenOffice hat eine andere RegEx-Engine als LibreOffice (→ viewtopic.php?f=2&t=62415&p=236291#p236291), RegEx in Scintilla / SciTE und dem darauf aufbauenden Notepad++ sind wieder ganz was anderes, usw. usf.

Gruß
lorbass
Wooohhh :D Das mit den Implementierungen war mir zwar klar, neu ist mir aber, das es da selbst zwischen LibreOffice und OpenOffice bereits Unterschiede gibt. Darüber hinaus war mir die Verbindung zwischen Scintilla / SciTE und Notepad++ bisher nicht bekannt, obwohl ich das Eine nutze, und das Andere aktuell sogar noch verwende :D
Beim POSIX RegEx geh ich aber mal davon aus, dass es vollständig ist :) Danke für die Antwort!

Re: [GELÖST] Ganze Zelle ersetzen

von lorbass » Mo, 17.02.2014 17:08

der.matze hat geschrieben:Das ist aber OpenOffice-spezifisch, oder besitzt das allgemeine Gültigkeit bei regulären Ausdrücken?
Die diversen RegEx-Engines verfügen zwar über gewisse Kern-Konstrukte, die allen Implementierungen gemein sind, driften darüber hinaus aber insbesondere, was die Vollständigkeit der Implementierungen betrifft, mehr oder weniger zügig auseinander. POSIX-RegEx sind was anderes als Perl-RegEx, Apache OpenOffice hat eine andere RegEx-Engine als LibreOffice (→ viewtopic.php?f=2&t=62415&p=236291#p236291), RegEx in Scintilla / SciTE und dem darauf aufbauenden Notepad++ sind wieder ganz was anderes, usw. usf.

Gruß
lorbass

Re: Ganze Zelle ersetzen

von der.matze » Mo, 17.02.2014 14:39

clag hat geschrieben:Hallo der.matze,

dann verwende diesen

Suchstring [(.*[:cntrl:])*.*Teilstring.*([:cntrl:].*)*]

um zB mehrzeilige Zelleninhalte zu ersetzen
YEAH - läuft! DANKE!

Liegt das daran, dass da noch mehr Sonderzeichen (resp. Kontrollzeichen) 'versteckt' sind und [:cntrl:] alle Abgreift? Das ist aber OpenOffice-spezifisch, oder besitzt das allgemeine Gültigkeit bei regulären Ausdrücken?
Kannst du mir, wo du sie ja verwendet hast, evtl auch erklären, warum das Program bei meiner Variante mit den runden Klammern abstürzt?

Danke nochmal :)

Re: Ganze Zelle ersetzen

von Karolus » Mo, 17.02.2014 14:37

Hallo
Hier funktioniert der Suchausdruck
^(.|\n)*suchtext(.|\n)*$

Karolus

Re: Ganze Zelle ersetzen

von clag » Mo, 17.02.2014 14:29

Hallo der.matze,

dann verwende diesen

Suchstring [(.*[:cntrl:])*.*Teilstring.*([:cntrl:].*)*]

um zB mehrzeilige Zelleninhalte zu ersetzen

Re: Ganze Zelle ersetzen

von der.matze » Mo, 17.02.2014 14:00

clag hat geschrieben:[...]
als Suchstring [.*Teilstring.*]
Ersetzen durch [Der komplett neue String]
und unter Mehr Option_ [✔]Reguläre Ausdruck den Haken setzen

sollte deinen Wunsch erfüllen
Hi clag,
leider funktioniert das nicht. Das hatte ich bereits getestet, weshalb ich das mit den \n-Umbrüchen eingebaut hatte.
In deinem Beispiel werden Zeilenumbrüche innerhalb der Zellen nicht berücksichtigt, sprich wenn der Zelleninhalt so aussieht:

Code: Alles auswählen

blabla
substring
blublub
..ist das Ergebnis der Ersetzung:

Code: Alles auswählen

blabla
neuer string
blublub
Bin für weitere Vorschläge offen ;)

Re: Ganze Zelle ersetzen

von clag » Mo, 17.02.2014 05:34

Moin der.matze,

da hast du ein paar zuviel reguläre Ausdrücke ins Spiel gebracht :)
weniger ist manchmal mehr

als Suchstring [.*Teilstring.*]
Ersetzen durch [Der komplett neue String]
und unter Mehr Option_ [✔]Reguläre Ausdruck den Haken setzen

sollte deinen Wunsch erfüllen

[GELÖST] Ganze Zelle ersetzen

von der.matze » So, 16.02.2014 22:52

Hi, hab eigentlich vermutet, dass das Problem schonmal jemand hatte - aber da mir die Suche nach mehreren Versuchen zu o.G. immer sagt 'ignoriert: zelle' probier ich es mal hier.
Wenn ich nur zu dumm bin, die Suche zu bedienen, sind Hinweise dazu sehr willkommen ;)

Also: Ich suche nach Substrings und möchte die jeder Zelle, in der diese gefunden werden, den kompletten Inhalt ersetzen. Hab das mit regulären Ausdrücken probiert und versagt. Mein vielversprechendster Versuch dabei war dies:

Code: Alles auswählen

[.*[\n]*.*]*SUBSTRING[.*[\n]*.*]*
(..in den Zellen gibt es Zeilenumbrueche)

Jemand ne Idee, woran es scheitert?

EDIT:
Kurze Frage Anbei:
Hab den Suchstring jetzt zumindest mal gekürzt auf

Code: Alles auswählen

[\n*.*]*SUBSTRING[\n*.*]*
Das sollte -meiner Meinung nach- das Gleiche machen.

Warum aber stürzt OOo ab, wenn ich die eckigen Klammern durch runde ersetze?

Code: Alles auswählen

(\n*.*)*SUBSTRING(\n*.*)*

Nach oben