Посмотрите, есть ли в строке ruby ​​пробел - PullRequest
22 голосов
/ 25 января 2010

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

Спасибо

Ответы [ 6 ]

37 голосов
/ 25 января 2010

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

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
7 голосов
/ 25 января 2010
some_string.match(/\s/)
4 голосов
/ 25 января 2010

Обычно это делается так:

str =~ /\s/

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

2 голосов
/ 25 января 2010

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

"mystring".index(/\s/)
1 голос
/ 27 июня 2018
"text message".include?(' ') #=> true
"text_message".include?(' ') #=> false
0 голосов
/ 22 июля 2016

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

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


"hello 1".count(" ") > 0 #=> true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...