在Ruby中扫描字符串数组以查找匹配项

在Ruby中扫描字符串数组以查找匹配项,ruby,ruby-on-rails-3.2,Ruby,Ruby On Rails 3.2,我有一个数组: a = ["http://design.example.com", "http://www.domcx.com", "http://subr.com"] 然后,如果该数组中的一个元素与字符串匹配,我想返回true: s = "example.com" 我尝试了包括?和任何? a.include? s a.any?{|w| s=~ /#{w}/} 我不知道在这里怎么用。有什么建议吗?以下内容如何: a=["http://design.example.com", "http:/

我有一个数组:

a = ["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
然后,如果该数组中的一个元素与字符串匹配,我想返回true:

s = "example.com"
我尝试了
包括?
任何?

a.include? s
a.any?{|w| s=~ /#{w}/}
我不知道在这里怎么用。有什么建议吗?

以下内容如何:

a=["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
s= "sus"
p a.any? { |w| w.include? s } #=> false

a=["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
s= "design.example"
p a.any? { |w| w.include? s } #=>true

a=["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
s= "desingn.example"
p a.any? { |w| w.include? s } #=>false

a=["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
s= "example"
p a.any? { |w| w.include? s } #=>true

a=["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
s= "example.com"
p a.any? { |w| w.include? s } #=>true

您可以使用
any?
如:

[
  "http://design.example.com",
  "http://www.domcx.com",
  "http://subr.com"
].any?{ |s| s['example.com'] }
替换变量名:

a = [
  "http://design.example.com",
  "http://www.domcx.com",
  "http://subr.com"
]
s = "example.com"
a.any?{ |i| i[s] }

您也可以通过其他几种方式进行操作,但使用
any?
的优点是,只要您点击一次,它就会停止,因此,如果点击发生在列表的早期,则速度会快得多。

请参阅。“如果给定了匹配项,则如果该字符串出现在该字符串中,则返回该字符串。”如果未找到任何内容,则返回
nil
,或者返回子字符串,从而有效地触发
any?
,结果为假/真。这是Ruby奇妙之处的一部分。感谢链接,从未到达方法集群的中间:)感谢match str方法。你的逻辑对我有用。如果返回true,我需要获取数组列表中的第一个元素。我写得像一个.any?{I{pi,除非I[s]}。谢谢。非常感谢你的回复。