Rubyでプログラミングをしています。

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

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

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

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/05/22 19:46:25
  • 終了:2010/05/24 20:05:45

ベストアンサー

id:koriki-kozou No.1

koriki-kozou回答回数480ベストアンサー獲得回数792010/05/22 19:55:00

ポイント60pt

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
id:Ryo0524

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

2010/05/24 20:05:23

その他の回答(1件)

id:koriki-kozou No.1

koriki-kozou回答回数480ベストアンサー獲得回数792010/05/22 19:55:00ここでベストアンサー

ポイント60pt

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
id:Ryo0524

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

2010/05/24 20:05:23
id:iwadon No.2

いわどん回答回数60ベストアンサー獲得回数132010/05/22 21:31:06

ポイント10pt

いくつか方法があると思いますが、正規表現を使った方法と、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

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません