Hallo Dirk,
die Suchen & Ersetzen Funktion ersetzt den gefundenen Teilstring Wert im Orginalwert. Wenn du im "Ersetzen durch" Feld die Backreference $1 verwendest, wird im Wert der gematchten Teilstring "6 x 60" durch "6 x 60" ersetzt. Es wird nicht der komplette String aus dem Wert Feld ersetzt. Im Screenshot habe ich zur Verdeutlichung mal Klammern um $1 gepackt. So kann man besser erkennen, dass der Teilstring korrekt ersetzt wird (siehe Spalte "name").
Im einfachsten Fall kannst du deine Regex vor und nach der Klammen mit .* erweitern. Damit sollten alle anderen Zeichen aus dem Wert entfernt werden.
.*([M]?\d{1,4}(?:\sm{1,2})?(?=\sx\s)(?:\sx\s\d{1,4}(?:\sm{1,2})?){0,4}).*
Viele Grüße
Torsten
Hallo Dirk,
anderer Vorschlag: Du könntest auch das Freemarker ?matches Build-In verwenden. Das hätte den Vorteil das nur die Matches ausgeben werden und nicht der Umweg über Suchen & Ersetzen gemacht werden muss:
<#assign res = result['text']!?matches("([M]?\\d{1,4}(?:\\sm{1,2})?(?=\\sx\\s)(?:\\sx\\s\\d{1,4}(?:\\sm{1,2})?){0,4})")><#list res as m>${m}</#list>
(Hinweis: die \ müssen escaped werden, deshalb \\ )
Viele Grüße
Torsten