回答編集履歴

2

タイプミス

2018/06/04 06:38

投稿

otn
otn

スコア84557

test CHANGED
@@ -1,6 +1,6 @@
1
1
  これはだめです。
2
2
 
3
- `tbl_cmd`への代入の時点での'$1`の値(多分空文字列)が展開されて`tbl_cmd[:cmd]`にセットされます。
3
+ `tbl_cmd`への代入の時点での`$1`の値(多分空文字列)が展開されて`tbl_cmd[:cmd]`にセットされます。
4
4
 
5
5
 
6
6
 

1

追記

2018/06/04 06:38

投稿

otn
otn

スコア84557

test CHANGED
@@ -5,3 +5,35 @@
5
5
 
6
6
 
7
7
  どうしたら良いかはちょっと考えてみます。
8
+
9
+ #追記
10
+
11
+ 元の物に近くするには、`eval`を使うしか無さそうです。
12
+
13
+ ```Ruby
14
+
15
+ tbl_cmd = [
16
+
17
+ { regexp: '^ *v +(\d+) *$',
18
+
19
+ cmd: '":direct #{$1}"'},
20
+
21
+ ]
22
+
23
+ cmd = STDIN.gets # v 5 と入力
24
+
25
+ tbl_cmd.each do |c|
26
+
27
+ if /#{c[:regexp]}/ =~ cmd
28
+
29
+ puts "match"
30
+
31
+ p $1
32
+
33
+ p eval(c[:cmd])
34
+
35
+ end
36
+
37
+ end
38
+
39
+ ```