Zeichen aus String löschen An einer bestimmten PositionHallo,
Ich möchte ein Skript erstellen, um ein Zeichen aus einer Zeichenfolge zu entfernen, während das gleiche Zeichen früher in der Zeichenfolge ignoriert wird.
Zum Beispiel habe ich aus einer Datentabelle eine spezielle DateTime von YY/MM/DD/hh:mm und möchte das dritte / (dh Zeichen 9) entfernen.

Vielen Dank für jede Hilfe,
Lukas
AnalytikDatentabelleSkriptingFensterRe: Zeichen aus String an bestimmter Position löschenEs gibt viele Ansätze. Wenn die Strings immer die gleiche Länge haben usw., könnte ich eine Formelspalte mit verwenden
Left( DateTime, 8 ) || "T" || Right( DateTime, 5 );
Vielleicht möchten Sie ein Trennzeichen wie T, das von einem der internationalen Formate verwendet wird, yyyy-mm-ddThh:mm.
Wenn es eine Variation gibt, aber vielleicht immer das dritte /, könnte ich Regex in der Formelspalte verwenden
Regex( DateTime, "^(\d+/\d+/\d+)/(\d+:\d+)$", "\1T\2" );
^ und $ verankern die Übereinstimmung am Anfang und am Ende des DateTime-Strings. \d+ entspricht 1 oder mehr Ziffern. Die Klammern bilden Gruppen, und die beiden Gruppen werden mit \1T\2 referenziert, um den Ergebniswert zu bilden.
Re: Zeichen aus String an bestimmter Position löschenHallo Craige, ich habe das versucht, scheine aber Fehler zu bekommen, wenn ich versuche, es zu verwenden:

Ich verstehe es möglicherweise falsch, da ich versuche, eine neue Spalte mit den Daten zu erstellen:

Entschuldigung, aus irgendeinem Grund konnte ich das erforderliche Screencap nicht als JLS-Skript senden
Betreff: Zeichen aus Zeichenfolge an bestimmter Position löschenKönnte nur ein einfacher Fehler mit Spaltenreferenzen sein.
Names Default To Here(1);
dt = New Table("Untitled 5",
Add Rows(3),
New Column("DateTime", Character, "Nominal", Set Values({"21/10/24/15:21", "21/10/24/14:21", "20/09/20/15:20"}))
);
/*
other solutions
a = "21/10/24/15:21";
//other solution with Regex
Show(Regex(a, "^(.{8})(.)(.*)$", "\1 \3"));
//using Words and Concat Items
Show(Concat Items(Words(a, "/")[1 :: 3], "/") || " " || Word(4, a, "/"));
//Using Contains to get last "/" and then Substr()
lastIdx = Contains(a, "/", -1);
Substr(a, 1, lastIdx - 1) || " " || Substr(a, lastIdx + 1);
*/
dt << New Column("Compatible DateTime", Formula(Left(:DateTime, 8)</img> || " " || Right(:DateTime, 5)));(Beachten Sie, dass die neue Spalte ohne zusätzliches jsl nicht numerisch fortlaufend ist.)