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

Ruby:检查字符串是否包含多个值,ruby,Ruby,我想看看给定字符串中是否出现任意字符c1、c2、c3… 我正在寻找一种很好的方法来重做以下示例: val = String.new("abc123") if val.include? "a" or val.include? "2" or val.include? "3" ... end 写如下: val = "abc123" val[/[1af]/] # => "a" val[/[w6f]/] # => nil 因此,将代码更改为 if val[/[a23]/] #...

我想看看给定字符串中是否出现任意字符
c1、c2、c3…

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

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

val = "abc123"
val[/[1af]/] # => "a"
val[/[w6f]/] # => nil
因此,将代码更改为

if val[/[a23]/]
  #...
end
请参阅的文档

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


我会使用正则表达式

string_to_check = "hello random abc123"

string_to_check =~ /[a23]/
这将返回第一场比赛的位置。然后,如果您想知道它是真是假,您只需执行
==0
!=0

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

试试这样的

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

s = "abc123"

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

不。找不到正则表达式时会发生什么?它返回
nil
。你不会想要的。所以
string\u to\u check=~/[rrr]/
返回
nil
,并且
nil!=0
返回
true
。最简单的解决方案:
!!(字符串到检查=~/[a23]/)