Ruby:检查字符串是否包含多个值

时间:2013-12-22 18:39:14

标签: ruby

我想查看给定字符串中是否有任意字符c1,c2,c3...

我正在寻找一种很好的方法来重做以下示例:

val = String.new("abc123")
if val.include? "a" or val.include? "2" or val.include? "3"
  ...
end

3 个答案:

答案 0 :(得分:1)

尝试这样的事情

arr = [ 'a', '2', '3' ]

s = "abc123"

arr.any? { |letter| s.include? letter } # Will return true if any element is present 

答案 1 :(得分:0)

我会使用正则表达式。

string_to_check = "hello random abc123"

string_to_check =~ /[a23]/

这将返回第一场比赛所在的位置。然后,如果您想知道它是真还是假,您可以== 0!= 0

(string_to_check =~ /[a23]/) != 0

答案 2 :(得分:-1)

写如下:

val = "abc123"
val[/[1af]/] # => "a"
val[/[w6f]/] # => nil

所以将代码更改为

if val[/[a23]/]
  #...
end

请参阅str[regexp] → new_str or nil的文档。

  

如果提供 Regexp ,则返回字符串的匹配部分。如果捕获遵循正则表达式(可能是捕获组索引或名称),则遵循正则表达式,而不是返回MatchData的组件。