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]/)