前提・実現したいこと
ハッシュのキーを正規表現で表して値を取得したいのですがうまくいきません。(nilが入る)
####1.番号リストまず、正規表現の書き方があっているかわかりません。
正規表現のルール
- IDの数字は変数に入っている値にする
- ()は全角・半角どちらでも問題ない
- スペースがどこに入っていても無視する
例)変数idの値が1のとき page(ID1)
, page(ID1)
, page(ID1)
, pag e(ID1)
をOKにしたい
このときの正規表現の書き方はあっているでしょうか?
rb
1regex = /\A\s+page[(|(]ID#{id}[)|)]\s+\z/ 2(スペースを無視する範囲を先頭と末尾だけのとき) 3 4または 5 6regex = /\Apage[(|(]ID#{id}[)|)]\z/x 7(最後に/xをつけるとスペースを無視してくれるらしい?) 8
####2.ハッシュを使って、キーの値を取り出すとき、これまでは「|」を使っていたのですが、正規表現で取り出したいです。
これまでは、「|」を使って取り出していました。
rb
1 value = h["page(ID#{id})"] || h["page(ID#{id})"]
正規表現をつかって同じ動作(正規表現のルールは1と同じ)をさせたいのですが毎回nilが入ります。
rb
1regex = /\Apage[(|(]ID#{id}[)|)]\z/x 2 3value = h.find {|k,v| k.to_s.match(regex) }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/14 08:41
2021/01/14 09:09 編集
2021/01/14 09:07
2021/01/14 09:12
2021/01/14 09:30
2021/01/14 15:20