人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Rubyでプログラミングをしています。
以下のような文字列の検索がしたいのですが、いまいちわかりません。
わかるかた、教えてください。

str_a = "東京、大阪、北海道、沖縄"
kensaku = "沖縄"

上記のように、str_a、kensakuとゆう変数があります。
str_aの中にkensakuにセットされている文字列があるかないかを調べたい。


●質問者: Ryo0524
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Ruby いまいち プログラミング 北海道 変数
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● koriki-kozou
●60ポイント ベストアンサー

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
◎質問者からの返答

ありがとうございます。できました。


2 ● いわどん
●10ポイント

いくつか方法があると思いますが、正規表現を使った方法と、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が帰ってきたら文字列が見つからなかったと判断して良いと思います。

instance method Regexp#===

instance method String#match

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ