[ruby-list:50671] Re: [質問] キャプチャ付き正規表現の後方参照

From: dogatana <dogatana@...>
Date: 2018-06-04 03:24:52 UTC
List: ruby-list #50671
こんにちは、市田です。

2018年6月3日 0:21 Takahiro Yamaguchi <yamataka@u08.itscom.net>:

> $ cat regex.rb
> tbl_cmd = [
>   { regexp:       '^ *v +(\d+) *$',
>     cmd:          ":direct #{$1}"},
> ]

> p c[:cmd] の、c[:cmd]  の、$1 部分、
> でキャプチャした内容を後方参照できずに、悩んでいます。

":direct #{$1}" の中の$1 はtbl_cmd の定義を「実行」する際に展開されるためでは?

式展開の実行そのものを遅延させるには eval が利用できそうですが、ユーザの入力をそのまま
式展開するような使用方法は危険なため、一般には推奨されないと思います。

In This Thread