我想查看给定字符串中是否有任意字符c1,c2,c3...
。
我正在寻找一种很好的方法来重做以下示例:
val = String.new("abc123")
if val.include? "a" or val.include? "2" or val.include? "3"
...
end
答案 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的组件。