Skriptbefehle in regulären Ausdrücken funktionieren nicht wie erwartet


#1

Wenn ich die Zeichenfolge aaa, bbb/ccc, ddd über den regulären Ausdruck (.*)/(.*) ersetze mit $1 | $2 erhalte ich wie erwartet aaa, bbb | ccc, ddd

ersetze ich mit $trim($1) | $trim($2) erhalte ich stattdessen aaa | ccc
Erwarten würde ich, dass hier ebenfalls aaa, bbb | ccc, ddd erhalte, da nur die führenden und abschließenden Leerzeichen von $1 und $2 entfernt werden sollen.
Das Komma in der Zeichenfolge wird anscheinend als Parametertrenner interpretiert.
auch ein Quoten des Ausdrucks $trim('$1') | $trim('$2') ändert nichts am Ergebnis.
Auch ein $upper($1) | $upper($2) liefert z.B. AAA | CCC und nicht AAA, BBB | CCC, DDD.

Ich habe mir jetzt so beholfen, dass ich das Komma vorher durch ein anderes Zeichen ersetze und nach Anwendung des regulären Ausdrucks wieder umwandle.


#2

Ich weiß ja nicht, was du da machst, aber
$regexp('aaa, bbb/ccc, ddd',(.*)/(.*),$trim($1) | $trim($2))

ergibt

aaa, bbb | ccc, ddd


#3

ich mache z.B. Folgendes - über Aktionen

Tag-Feld formatieren "ALBUMARTIST": aaa, bbb/ccc, ddd
Regulärer Ausdruck "ALBUMARTIST": " (.*)/(.*)" -> "$trim($1) | $trim($2)"

und das ergibt aaa | ccc


#4

Ich habe dir doch ein Syntaxbeispiel gegeben.
Statt des Strings kannst du auch einen Feldnamen nehmen.
Denn das von mir erstellte Beispiel liefert doch das gewünschte Ergebnis, oder?


#5

Danke, das Syntaxbeispiel funktionert.
Aber sollte es über die Aktion "regulärer Ausdruck" nicht auch funktionieren ?


#6

Doch, müsste es.
Nur kann es ja sein, dass z.B. das führende Blank in dem Such-String

Könnte ja zu einem Muster führen, das nie gefunden wird.