有没有更好的方法来忽略大写呢?
"Hello".start_with?("hell","Hell") #=> true
我想检查数组中的字符串元素是否以另一个忽略大写的字符串开头,如MySQL中的LIKE %
。
答案 0 :(得分:5)
您可以regular expression使用String#=~
:
"Hello" =~ /^hell/i #=> 0
"hELLO" =~ /^hell/i #=> 0
"world" =~ /^hell/i #=> nil
由于0
truthy 且nil
falsy ,因此可以在if
子句中使用:
if str =~ /^hell/i
# starts with hell
end
答案 1 :(得分:4)
我会做这样的事情:
'Hello'.upcase.start_with?('HELL')
解决同一问题的另一种方法。这相当于在SQL中执行类似UPPER(column) like 'SOMETHING%'
的操作。
答案 2 :(得分:0)
我认为最好的方法是使用Ruby的正则表达式匹配忽略大小写标志:
'Hello'.match /^hell/i
'^'表示字符串的开头。没有它会匹配字符串中的“地狱”。最后一个'i'只是一个正则表达式标志,表示与忽略大小写集匹配。
您可以在此处找到有关Ruby Regex API的更多信息: http://www.regular-expressions.info/ruby.html