Ruby - 查找关键字,尽管区分大小写
Ruby - find keywords despite case-sensitive
u = gets.chomp
if u.include? "tree"
# ...
在此代码中 ruby 将搜索 tree
单词,但会忽略所有其他情况
像 Tree
或 tReE
等等
有没有办法告诉 ruby 我不关心大小写
并抓住所有的词,不管他们的情况?
你可以先小写:
u.downcase.include?("tree")
编辑以下评论:
可以包括一般搜索词的小写
u.downcase.include?(x.downcase)
你有(至少)两个解决这个问题的方法:
将 u 小写并与 'tree' u.downcase.include? 'tree'
进行比较
使用不区分大小写的正则表达式 u.match(/tree/i)
奖金规格:
- 'treetop' 应该匹配吗?
如果没有,请使用正则表达式 /\btree\b/i
或像这样扫描句子中的单词树:
u.downcase.scan(/\w+/).include?('tree')
仅涉及正则表达式匹配的更简单的解决方案:
u = gets.chomp
if u =~ /tree/i
# ...
end
勾选 String#casecmp。它 returns 0
如果两个字符串 相等 ,不区分大小写。
> string1.casecmp(string2) == 0
#=> true
> "tree".casecmp("TRee") == 0
#=> true
> "tree".casecmp("TrEe") == 0
#=> true
> "tree".casecmp("trEE") == 0
#=> true
> "tree".casecmp("trEEe") == 0
#=> false
尝试:
u = gets.chomp
if u.casecmp("tree") == 0
注意: downcase
并非适用于所有情况,请参见下面的示例
> "tree".include?("TRe".downcase)
#=> true
u = gets.chomp
if u.include? "tree"
# ...
在此代码中 ruby 将搜索 tree
单词,但会忽略所有其他情况
像 Tree
或 tReE
等等
有没有办法告诉 ruby 我不关心大小写 并抓住所有的词,不管他们的情况?
你可以先小写:
u.downcase.include?("tree")
编辑以下评论:
可以包括一般搜索词的小写
u.downcase.include?(x.downcase)
你有(至少)两个解决这个问题的方法:
将 u 小写并与 'tree'
u.downcase.include? 'tree'
进行比较
使用不区分大小写的正则表达式
u.match(/tree/i)
奖金规格:
- 'treetop' 应该匹配吗?
如果没有,请使用正则表达式 /\btree\b/i
或像这样扫描句子中的单词树:
u.downcase.scan(/\w+/).include?('tree')
仅涉及正则表达式匹配的更简单的解决方案:
u = gets.chomp
if u =~ /tree/i
# ...
end
勾选 String#casecmp。它 returns 0
如果两个字符串 相等 ,不区分大小写。
> string1.casecmp(string2) == 0
#=> true
> "tree".casecmp("TRee") == 0
#=> true
> "tree".casecmp("TrEe") == 0
#=> true
> "tree".casecmp("trEE") == 0
#=> true
> "tree".casecmp("trEEe") == 0
#=> false
尝试:
u = gets.chomp
if u.casecmp("tree") == 0
注意: downcase
并非适用于所有情况,请参见下面的示例
> "tree".include?("TRe".downcase)
#=> true