Я хочу посмотреть, есть ли строка в пробеле. Какой самый эффективный способ сделать это в рубине?
Спасибо
Ответ 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/
Вы можете прочитать о регулярных выражениях здесь.