[gelöst] RegEx im "Suchen und Ersetzen-Dialog": Alles außer dem ersten Zeichen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

[gelöst] RegEx im "Suchen und Ersetzen-Dialog": Alles außer dem ersten Zeichen

Beitrag von TrueColor »

Hallo,
ich wurde gebeten, meine Frage von viewtopic.php?p=302322#p302322 hier im Calc-Forum nochmal zustellen:

Wie kann ich im Suchen und Ersetzen mittels Regulären Ausdrücken "alles außer dem ersten Zeichen" suchen?

Ich möchte mittels Suchen und Ersetzen Formeln einer ganzen (bereits für Diagramme angepasste) Tabelle zu editieren, um z.B. zusätzliche Bedingungen hinzuzufügen.
z.B. =$Tabelle1!$A$1 ändern zu =wenn($Tabelle1!$A$1=0;"";$Tabelle1!$A$1

Ja, im Normalfall könnte ich auf Zahlenformatcodes zurückgreifen, jedoch bei Diagrammen ist Null und leer eben nicht das gleiche. Ich habe bei Diagrammen die Möglichkeit, bei fehlenden Werten im Graph eine Lücke zu lassen oder die Linie einfach durchzuziehen.

Ich habe mir erstmal mittels
Suchen nach:

Code: Alles auswählen

[^\=]*
(ein oder mehrere beliebige Zeichen außer "=")

Ersetzen durch:

Code: Alles auswählen

wenn($0=0;"";$0)
("$0" bezeichnet den kompletten Suchstring)
behelfen können. Das geht aber in die Hose, sobald ich im Suchstring ein weiteres, dann für die Formel relevantes "=" (z.B. irgendwelche Vergleiche) drin habe.

Vielen Dank!

LibO 6 und LibO 7
Zuletzt geändert von TrueColor am Mo, 07.10.2024 17:01, insgesamt 1-mal geändert.
System:
LibO 6 + LibO 7
Karolus
********
Beiträge: 7521
Registriert: Mo, 02.01.2006 19:48

Re: RegEx im "Suchen und Ersetzen-Dialog": Alles außer dem ersten Zeichen

Beitrag von Karolus »

Hallo
z.B. =$Tabelle1!$A$1 ändern zu =wenn($Tabelle1!$A$1=0;"";$Tabelle1!$A$1
»z. B.« ist ein wenig ungenau, und wieso benutzt du Excelsyntax?

suche nach:

Code: Alles auswählen

^=(.*)$
ersetzen durch

Code: Alles auswählen

=WENN($1=0;"";$1)
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: RegEx im "Suchen und Ersetzen-Dialog": Alles außer dem ersten Zeichen

Beitrag von TrueColor »

Hallo Karolus,
z.B. =$Tabelle1!$A$1 ändern zu =wenn($Tabelle1!$A$1=0;"";$Tabelle1!$A$1
»z. B.« ist ein wenig ungenau[...]

Weil ich das gern so allgemein wissen möchte, dass ich jede Formel, unabhängig von deren Inhalt, auf diese Art weiterbearbeiten könnte. Möglicherweise fkt. das dann nicht mit Matrixformeln, das wäre aber ok für mich.
[...]und wieso benutzt du Excelsyntax?
Mir ist vor deiner Rückfrage nicht bewusst gewesen und bisher auch nie aufgefallen, dass hier eine unterschiedliche Syntax existiert. Ich hab die Formel im Posting per Hand getippt. Es gibt nur einen Fall, wo ich bewusst die Excel-Syntax verwende, beim Summenprodukt, weil man da genau sieht, was passiert (Multiplikation von Wahrheitswerten).
suche nach:

Code: Alles auswählen

^=(.*)$
ersetzen durch

Code: Alles auswählen

=WENN($1=0;"";$1)
Übersetzt also das "=" am Absatzanfang und ein oder mehrere beliebige einzelne Zeichen am Absatzende. Die "$1" ist die Referenz auf den Inhalt des ersten Klammerpaares. Ist das so korrekt?

Für mich ist das insofern nicht ganz einfach zu verstehen, da zum Einen einige Zeichen (das Dach) je nach Position unterschiedliche Bedeutung haben, und zum Anderen keine gescheite Trennung der einzelnen Terme.

Wäre die folgende Syntax auch richtig?

Code: Alles auswählen

^(=)(.*)$
Die Referenz dann natürlich mit "$2".

Danke!
System:
LibO 6 + LibO 7
Karolus
********
Beiträge: 7521
Registriert: Mo, 02.01.2006 19:48

Re: RegEx im "Suchen und Ersetzen-Dialog": Alles außer dem ersten Zeichen

Beitrag von Karolus »

Hallo

Code: Alles auswählen

^=   # ein Gleichheitszeichen direkt am Anfang des Texts…
(.*)$     # …gefolgt von beliebigen Zeichen in beliebiger Anzahl bis zum Textende, per Klammern in der ersten Gruppe referenziert

Code: Alles auswählen

^(=)(.*)$
ginge auch aber bringt dir keinen Vorteil weil da eh nur ein konkretes Zeichen in $1 steckt.

Code: Alles auswählen

[…] # erlaubt alle zeichen in den []
 [^…]  # erlaubt alle zeichen ausser denen 

Code: Alles auswählen

Tabelle1!A1   # Excelsyntax
Tabelle1.A1   # Calcsyntax
Bei SUMMENPRODUKT steht schon PRODUKT im Funktionsnamen, da möchte ich nicht nochmal explizit per Operator multiplizieren.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: RegEx im "Suchen und Ersetzen-Dialog": Alles außer dem ersten Zeichen

Beitrag von TrueColor »

Karolus hat geschrieben: Mo, 07.10.2024 14:23

Code: Alles auswählen

[...]
(.*)$     # …gefolgt von beliebigen Zeichen in beliebiger Anzahl bis zum Textende, per Klammern in der ersten Gruppe referenziert
Die Lesart macht das deutlicher, danke! Die Formulierung in der Hilfe hatte ich eher verstanden in der Form "von rechts beginnend..." (ja, und bis wo hin?)

Damit ist das Thema gelöst, danke dir!
System:
LibO 6 + LibO 7
Antworten