Подтвердить что ты не робот

Посмотрите, есть ли в рубиновой строке пробелы

Я хочу посмотреть, есть ли строка в пробеле. Какой самый эффективный способ сделать это в рубине?

Спасибо

4b9b3361

Ответ 1

Если по "белому пространству" вы подразумеваете в смысле "Регулярное выражение", которое представляет собой любой символ пробела, табуляции, новой строки, возврата каретки или (я думаю) формы-фида, тогда любой из предоставленных ответов будет работать:

s.match(/\s/)
s.index(/\s/)
s =~ /\s/

или даже (не упомянуто ранее)

s[/\s/]

Если вас интересует только пробельный символ, попробуйте указать

s.match(" ")
s.index(" ")
s =~ / /
s[" "]

Из irb (Ruby 1.8.6):

s = "a b"
puts s.match(/\s/) ? "yes" : "no" #-> yes
puts s.index(/\s/) ? "yes" : "no" #-> yes
puts s =~ /\s/ ? "yes" : "no" #-> yes
puts s[/\s/] ? "yes" : "no" #-> yes

s = "abc"
puts s.match(/\s/) ? "yes" : "no" #-> no
puts s.index(/\s/) ? "yes" : "no" #-> no
puts s =~ /\s/ ? "yes" : "no" #-> no
puts s[/\s/] ? "yes" : "no" #-> no

Ответ 2

some_string.match(/\s/)

Ответ 3

Обычно это делается следующим образом:

str =~ /\s/

Вы можете прочитать о регулярных выражениях здесь.

Ответ 4

вы можете использовать индекс

"mystring".index(/\s/)

Ответ 5

Мне очень нравится использовать счет для этого.

"hello 1".count("")   #=> 0
"hello 1".count(" ")  #=> 1
" hello 1".count(" ") #=> 2


"hello 1".count(" ") > 0 #=> true