質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

430閲覧

条件に当てはまるものを抽出して、それを検索したい

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/10/10 02:00

編集2018/10/13 05:30

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mather

2018/10/10 02:11

「その結果のコンテンツ番号」を具体的にどう求めるのか情報が与えたれていないので全然答えようがありません。まずは試行錯誤してどの部分が解決できないのか考えてみてください。ノープランで「教えてください」は丸投げです。また、「nil避け」というのはどういう意味ですか?
guest

回答2

0

ベストアンサー

[[ ]]を含むコンテンツの、[[ ]]内の文言を取り出し

もし、[[ ]]内の文言を全て取り出し
という意味ならば

rb

1post_all = [ 2 {"number" => 12345, "name" => "foo", "body_md" => "[[hoge]]"}, 3 {"number" => 67890, "name" => "hoge","body_md" => "[[none]]"}, 4 {"number" => 99999, "name" => "bar", "body_md" => "foo"}, 5 {"number" => 11111, "name" => "baz", "body_md" => "[[hoge]][[bar]]"} 6] 7name_tbl = post_all.map{|post| post.values_at('name', 'number') }.to_h 8post_all.each{|post| 9 body_md = post['body_md'] 10 name = post['name'] 11 number = post['number'] 12 body_md.scan(/[[(.+?)]]/){|(ref)| 13 puts "#{name}: #{ref} => #{name_tbl[ref]}" 14 } 15}

投稿2018/10/10 02:43

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/10 03:12

ありがとうございます、大変助かりました
退会済みユーザー

退会済みユーザー

2018/10/13 05:29 編集

すみません、もう一つ質問よろしいでしょうか 上記の例で、foo: hoge
guest

0

推測です。

  • postというデータ構造がある。post_allはpostの集合。
  • postには name, number, body_md がある。これはページに相当する。
  • Wikiページのように [[ページの名前]] と書くと、ページへのリンクを作りたい。
  • 実際に貼るリンクにはページの番号(number)が必要。
  • どうにかして name -> number を検索したい。

ということでしょうか。

name_dict = post_all.map{|x| [x["name"], x["number"]]}.to_h

とすることで name -> number の対応関係が得られますので、これを単純に検索すればいいと思います。
(ただし、name が重複しない前提です)

投稿2018/10/10 02:22

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/10 03:12

すみません、ありがとうございます 具体的に記載するように致します
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問