Neues Thema starten

Text anpassen

Hallo Support, 

ich habe in einer Spalte ein Text im Format: 

[GW500-GSP-37.5] New Balance Damen Lifestyle Sneakers, Mehrfarbig (Grey/Pink), 37.5 EU
 oder
ELLESSE Hoodie Retro Sport Style Vintage Look Kapuzenpullover Damen Gr. 36-46[schwarz,44]

Ich möchte den Inhalt innerhalb der Klammern (inkl. Klammern) löschen und falls Text kommagetrennt ist, alles nach dem ersten Komma, ebenfalls löschen.

Ich bin die ganzen Built-ins for Strings durchgegangen, dachte vielleicht es über "replace" zu machen, aber ich glaub das ist es nicht. Ebenso weiß ich nicht, wie die Funktion aussieht, wenn Sie aus 2 Bedingungen besteht. 

Habt ihr eine Idee, wie ich das lösen kann?

Vielen Dank und Gruß,

Patric

Hallo,

keine einfache Sache. Das bearbeiten von unstrukturiertem Freitext kann knifflich sein. Reguläre Ausdrücke in Kombination mit Splitten sind da Möglichkeiten. 

Ein hilfreiches Tool für reguläre Ausdrücke ist z.B. https://regex101.com/r/UNNrNk/1

Beispielhaft könnte man es so angehen, um erstmal zwischen den beiden Fällen zu unterscheiden:


<#if meinetextspalte!?contains(",")>

 ${meinetextspalte!?split(",")[0]!}

<#else>

${meinetextspalte!?replace("meinRegulärerAusdruckZumEntfernenDerKlammern","", "r")}

</#if>


Mit replace lagst du schon richtig. Um dort reguläre Ausdrück anzuwenden muss man noch das "r" Flag mitgeben.


Viele Grüße

Ihr Synesty Support

Vielen Dank, ich check das mal. 

Frohe Weihnachten!

Ich hab jetzt doch noch eine Frage zu: 


wenn (\[.*\]) den regulären Ausdruck ersetzt, müsste es doch so aussehen, oder wo ist da mein Denkfehler?

<#if meinetextspalte!?contains(",")>

 ${meinetextspalte!?split(",")[0]!}

<#else>

${meinetextspalte!?replace("(\[.*\])","", "r")}

</#if>

Ach ja kleines Detail... 


Die Backslashes müssen "doppelt escaped" werden. Ist leider so eine Eigenheit bei einigen Skriptsprachen wie Freemarker:

siehe http://stackoverflow.com/a/20394919/135535


sollte also so aussehen:

 

${meinetextspalte!?replace("(\\[.*\\])","", "r")}

 

Alternativ könnte man auch die Suchen & Ersetzen Funktion in der Spalte nutzen, denn da kann man diese doppelten Backslashes auch weglassen. 

image



Die Nutzung von Ergebnis-Spalten ist manchmal ganz praktisch, um quasi mit mehreren Teil- bzw. Zwischenergebnissen zu arbeiten. 


Anmelden um einen Kommentar zu veröffentlichen