以下のような文字列の検索がしたいのですが、いまいちわかりません。
わかるかた、教えてください。
str_a = "東京、大阪、北海道、沖縄"
kensaku = "沖縄"
上記のように、str_a、kensakuとゆう変数があります。
str_aの中にkensakuにセットされている文字列があるかないかを調べたい。
index で文字列を検索させる例
str_a = "東京、大阪、北海道、沖縄" kensaku = "沖縄" if str_a.index(kensaku) then p "a" else p "b" end kensaku = "愛知" if str_a.index(kensaku) then p "a" else p "b" end
index で文字列を検索させる例
str_a = "東京、大阪、北海道、沖縄" kensaku = "沖縄" if str_a.index(kensaku) then p "a" else p "b" end kensaku = "愛知" if str_a.index(kensaku) then p "a" else p "b" end
ありがとうございます。できました。
いくつか方法があると思いますが、正規表現を使った方法と、String#match を使った方法をご紹介します。
if /#{kensaku}/ =~ str_a puts("ある") else puts("ない") end
正規表現を使った場合、文字列が見つかったならば0以上の数が返ります。見つからなかったならばnilが返ります。
if str_a.match(kensaku) puts("ある") else puts("ない") end
Stringクラスのmatchメソッドを使った場合、文字列が見つかったならばMatchDataオブジェクトが返ります。見つからなかった場合はnilが返ります。
どちらの方法でもnilが帰ってきたら文字列が見つからなかったと判断して良いと思います。
ありがとうございます。できました。