Ben Ruby'ye yeni geldim.Ruby Bir dizede çok farklı dizeler varsa durumu kontrol et.
if (mystring.include? "string1") || (mystring.include? "string2") ||
(mystring.include? "string3")
Ben Ruby'ye yeni geldim.Ruby Bir dizede çok farklı dizeler varsa durumu kontrol et.
if (mystring.include? "string1") || (mystring.include? "string2") ||
(mystring.include? "string3")
Evet aşağıda,: bunu yazmak için daha iyi bir yolu var mı Enumerable#any?
başka bir yol (daha hızlı) 'dir.verilen bloğa koleksiyonun her bir öğeyi geçirir: Burada
belgelerdir . Yöntem, blok false veya nil dışında bir değer döndürdüğündeif %w(string1 string2 string3).any? { |s| my_string.include? s } # your code end
true
değerini döndürür. Blok verilmezse, Ruby,{ |obj| obj }
örtük bir blok ekler ve bu da neden olur? Koleksiyon üyelerinden en az birifalse
veyanil
değilse, true değerini döndürür.Sadece[13] pry(main)> ary = %w(string1 string2 string3) => ["string1", "string2", "string3"] [14] pry(main)> Regexp.union(ary) => /string1|string2|string3/ [15] pry(main)> "abbcstring2"[Regexp.union(ary)] => "string2" [16] pry(main)> "abbcstring"[Regexp.union(ary)] => nil
Regexp::union
vestr[regexp] → new_str or nil
okuyun: Burada
Eh, her zaman başka bir jwz alıntı :)
if mystring =~ /string1|string2|string3/
...
end
Vay riske (burada normal bir ifade kullanabilirsiniz! çok güzel ve hassas :) – Pavan
oh bu harika bir açıklama, teşekkürler. – Kuroun