BEDINGTE Freigabe der macOS Version Sequoia für tomedo®
Alle Hinweise und Informationen finden Sie unter folgendem Link.

Seit ca. Mitte 2024 ist der regex Befehl dankbarer Weise auch innerhalb von Kommandos anwendbar, aber scheinbar interpretiert tomedo Ausdrücke different zu zB regex101.com

Ich möchte gerne von einer Zeichenkette das letzte Zeichen entfernen, wenn es L oder R ist.

Nach eigener Syntax Recherche, ChatGPT Befragung und regex101.com Testung wäre der Ausdruck zB: /[LR]$/ oder /^L$|R$/

in tomedo Syntax wäre das dann zB $[regex /^L$|R$/ 5-87R8.45R]$ - was aber (different zu regex101.com) nur eine leere Zeichenkette ergibt.

Der Ausdruck $[regex [^LR]+ 5-878.45R]$ funktioniert in tomedo insofern, dass alle Zeichen vor dem ersten L oder R ausgegeben werden, was für meine Zwecke fast ausreicht, ein 5-5L4.45R würde aber nur "5-5" ergeben.

Hat Jemand einen vollständig funktionierenden Ansatz?

#*# Allen einen guten Rutsch #*#

  

 

Gefragt in Frage von (2.2k Punkte)
0 Punkte

2 Antworten

Beste Antwort

Hab's jetzt in tomedo getestet. Die Version 

(.+)[L|R]$

klappt nicht, weil das $-Zeichen als Ende des regex-Ausdrucks interpretiert wird.

Mit dieser Variante gelingt es dann aber doch:

$[regex (.+)[L|R] $[Code]$ _]$

 

Evtl. ist der Zusatz \b (word boundary) nach dem Ausdruck [L|R] hilfreich, da es eine Wortgrenze markiert und so sicherstellt, dass nur am Ende des Textes nach den Buchstaben L oder R gesucht wird.

Beantwortet von (7.3k Punkte)
ausgewählt von
0 Punkte
Klasse! Ich bekam keinen regex Ausdruck ohne das $-Zeichen hin, das tomedo selber verarbeiten wollte.

Vielen Dank!

funktioniert doch leider nicht ganz: wenn kein L oder R vorhanden ist, wird ein leerer String zurückgegeben.

Mein Versuch mit 

$[regex [^LR]+ $[Code]$]$

gibt eine Fehlermeldung, wenn Code leer ist. Und das läßt sich mit einer if Bedingung im selben Ausdruck nicht abfangen.

 

Das ist ja wirklich tricky...

Eigentlich sollte es jetzt so funktionieren:

$[regex (.+)[L|R]* $[Code]$ #]$

Merkwürdigerweise führt der * aber nun dazu, dass das zweite (von tomedo eingeforderte) Argument (in diesem Fall das Zeichen #) mit an das regex-Ergebnis gehängt wird, was nicht der Fall ist, wenn kein * benutzt wird. 

Mit einem zweiten regex kann man diesen Fehler aber wieder beseitigen, dann klappt es wieder:

Moin,

kann es am tomedo gerade nicht selbst testen: Aber könnte nicht dieser regex funktionieren (in regex101 klappt es und komplizierte Anteile sind ja nicht enthalten)?

(.+)[L|R]$

Falls es klappt: Guten Rutsch!

Falls es nicht klappt: Auch einen guten Rutsch!

Beantwortet von (7.3k Punkte)
0 Punkte
18,443 Beiträge
26,706 Antworten
47,871 Kommentare
29,227 Nutzer