Seite 1 von 1
[GELÖST] Ganze Zelle ersetzen
Verfasst: So, 16.02.2014 22:52
von der.matze
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:
(..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
Das sollte -meiner Meinung nach- das Gleiche machen.
Warum aber stürzt OOo ab, wenn ich die eckigen Klammern durch runde ersetze?
Re: Ganze Zelle ersetzen
Verfasst: Mo, 17.02.2014 05:34
von clag
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
Re: Ganze Zelle ersetzen
Verfasst: Mo, 17.02.2014 14:00
von der.matze
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:
..ist das Ergebnis der Ersetzung:
Bin für weitere Vorschläge offen

Re: Ganze Zelle ersetzen
Verfasst: Mo, 17.02.2014 14:29
von clag
Hallo der.matze,
dann verwende diesen
Suchstring [(.*[:cntrl:])*.*Teilstring.*([:cntrl:].*)*]
um zB mehrzeilige Zelleninhalte zu ersetzen
Re: Ganze Zelle ersetzen
Verfasst: Mo, 17.02.2014 14:37
von Karolus
Hallo
Hier funktioniert der Suchausdruck
^(.|\n)*suchtext(.|\n)*$
Karolus
Re: Ganze Zelle ersetzen
Verfasst: Mo, 17.02.2014 14:39
von der.matze
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: [GELÖST] Ganze Zelle ersetzen
Verfasst: Mo, 17.02.2014 17:08
von lorbass
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: [GELÖST] Ganze Zelle ersetzen
Verfasst: Mo, 17.02.2014 18:29
von der.matze
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

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

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
Verfasst: Mo, 17.02.2014 23:34
von Karolus
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