2016-07-04 18 views

Antwort

1

Sie haben Regex zu verwenden, um es:

select regexp_replace('d->d->a->d->c->a->a->c', '(\w\-\>)\1+', '\1', 'g'); 

enter image description here

Update-Version

select regexp_replace(regexp_replace(textcat('d->d->a->d->c->a->a->c->c', '->'), '(\w\-\>)\1+', '\1', 'g'), '\-\>$', ''); 
+0

nicht am Ende ab, wenn doppelte funktioniert: ‚d-> d-> a-> d-> c-> a-> a-> c-> c ' –

+0

@ RémyBaron Sie können '->' am Ende des Strings anfügen, 'regexp_replace' ausführen und' -> 'es vom Ende entfernen . Oder du kannst die Regex ein wenig umschreiben :) – Arsen

+0

oder: wähle regexp_replace (regexp_replace ('d-> d-> a-> d-> c-> a-> a-> c-> c-> c', ' (\ w \ - \>) \ 1+ ',' \ 1 ',' g '),' (\ w) \ - \> \ 1 ',' \ 1 '); –

Verwandte Themen