Za dużo spacji – wersja w Powershell

Jakiś czas temu pokazałem jak za pomocą krótkiego kodu w SQL usunąć wszystkie wielokrotne spacje w tekście i zastąpić je spacjami pojedynczymi.

https://xpil.eu/PCJ1Y

Dziś króciutko ten sam trick w Powershell, w razie gdyby ktoś kiedyś potrzebował pozbyć się wielokrotnych spacji z tekstu w windowsowym skrypcie.

$tekst = "Ala     ma kota      i    dwie     wydry."
$tekst.Replace(" ", "{}").Replace("}{", "").Replace("{}", " ")

Efekt?

Ala ma kota i dwie wydry.

Jak widać metoda działa identycznie. Najpierw zamieniamy każdą spację na {}, potem usuwamy każdą parę }{, na koniec zamieniamy pozostałe {} na pojedynczą spację.

Prawdę mówiąc sposób ten nie przestaje mnie zadziwiać. To jedna z tych rzeczy, które są proste algorytmicznie, krótkie w zapisie i działają uniwersalnie dla dowolnych tekstów.

6 komentarzy

    1. Działają, jak najbardziej. Można zrobić:

      "Ala ma cośtam" -replace "\ {2,}",""

      i zadziała bez pudła. Ale wtedy nie ma zabawy ?

      1. To było napisać wyraźnie, że to dla zabawy, bo jakiś początkujący programista na tę poradę trafi i zacznie wyważać otwarte drzwi 😉

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]