/ / Ruby, jak usunąć więcej niż jeden znak spacji? - rubin, sznurek, białe znaki

Ruby jak usunąć więcej niż jedną spację? - rubin, sznurek, białe spacje

Rubin Okej, chcę usunąć więcej niż jeden znak spacji w łańcuchach, jeśli taki istnieje. Mam na myśli, powiedzmy, że mam taki tekst:

I want to     learn ruby more and more.

Zobacz, że za nimi jest więcej niż jedna postać spacji„do”, a przed „uczeniem się” albo tabulatora, albo tylko kilku spacji. Teraz chcę, skąd mogę wiedzieć, czy jest coś takiego w pliku tekstowym, i chcę, aby było to tylko jedno miejsce na słowo lub ciąg znaków. Więc stanie się tak

I want to learn ruby more and more.

Czy mogę korzystać z Gsub? czy muszę użyć innej metody? Wypróbowałem Gsub, ale nie mogę wymyślić, jak wdrożyć go we właściwy sposób, aby uzyskać pożądany rezultat. Mam nadzieję, że wyjaśniłem to jasno. Każda pomoc jest doceniana, dzięki.

Odpowiedzi:

5 dla odpowiedzi № 1

Możesz użyć gsub aby zastąpić jedną lub więcej białych znaków (regex / +/) do pojedynczej białej spacji:

"I want to     learn ruby more and more.".gsub(/ +/, " ")
#=> "I want to learn ruby more and more."

5 dla odpowiedzi nr 2

String # squeeze usuń przebiegi więcej niż jednego znaku:

"I want to     learn ruby more and more.".squeeze(" ")
# => "I want to learn ruby more and more."