W Ruby, polecam użyciu klasy znaków Unicode "Kosmicznych separatorów" \p{Zs}
:
/\p{Zs}/u =~ "\xC2\xA0"
/\p{Zs}/u =~ "\u00A0"
/\p{Zs}/u =~ HTMLEntities.new.decode(' ')
Zobacz Ruby-dokumentacją więcej Unicode character properties.
Uwaga: Upewnij się, że Twój ciąg wejściowy jest prawidłowym kodowaniem UTF-8. W innych kodowaniach istnieją również przestrzenie nierozdzielające, np. "\ xA0" w ISO-8859-1 (Latin1). More info on the "non-breaking space".
FYI: W większości smaków i języków programowania RegExp obsługujących Unicode, klasa znaków \s
zwykle zawiera wszystkie znaki z "separatora" Unicode o właściwości \p{Z}
(jak wspomniał Tim Pietcker); Jednakże, Java i Ruby są tutaj popularnymi wyjątkami, a \s
pasuje tylko do [ \t\r\n\f]
.
Dzięki Tim, \ p {Z} jest interesujący. Czy możesz wyjaśnić, co masz na myśli przez inne separatory? – pguardiario
@pguardiario: Przepraszam, jakoś tęskniłem za twoim komentarzem. Standard Unicode definiuje wiele innych separatorów, które wydają się być używane głównie w językach wschodnich, gdzie słowa nie są wyraźnie oddzielone białymi znakami. –