質問編集履歴
3
修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
文章の一部分をのみを置換したい
|
test
CHANGED
@@ -1,18 +1,26 @@
|
|
1
|
-
|
1
|
+
文章の一部分をのみを置換したい
|
2
2
|
|
3
|
-
複数の文章(post_all)の中から、[[ ]]内に含まれる文言を抽出して
|
4
|
-
|
5
|
-
|
3
|
+
### 前提・実現したいこと
|
6
4
|
|
7
5
|
|
8
6
|
|
9
|
-
|
7
|
+
ここに質問の内容を詳しく書いてください。
|
8
|
+
|
9
|
+
(例)PHP(CakePHP)で●●なシステムを作っています。
|
10
|
+
|
11
|
+
■■な機能を実装中に以下のエラーメッセージが発生しました。
|
10
12
|
|
11
13
|
|
12
14
|
|
13
|
-
|
15
|
+
### 発生している問題・エラーメッセージ
|
14
16
|
|
17
|
+
|
18
|
+
|
19
|
+
```
|
20
|
+
|
15
|
-
|
21
|
+
エラーメッセージ
|
22
|
+
|
23
|
+
```
|
16
24
|
|
17
25
|
|
18
26
|
|
@@ -20,49 +28,9 @@
|
|
20
28
|
|
21
29
|
|
22
30
|
|
23
|
-
```
|
31
|
+
```ここに言語名を入力
|
24
32
|
|
25
|
-
post_all = [
|
26
|
-
|
27
|
-
{"number" => 12345, "name" => "foo", "body_md" => "[[hoge]]"},
|
28
|
-
|
29
|
-
{"number" => 67890, "name" => "hoge","body_md" => "[[none]]"},
|
30
|
-
|
31
|
-
{"number" => 99999, "name" => "bar", "body_md" => "foo"},
|
32
|
-
|
33
|
-
{"number" => 11111, "name" => "baz", "body_md" => "[[hoge]][[bar]]"}
|
34
|
-
|
35
|
-
]
|
36
|
-
|
37
|
-
name_tbl = post_all.map{|post| post.values_at('name', 'number') }.to_h
|
38
|
-
|
39
|
-
post_all.each{|post|
|
40
|
-
|
41
|
-
body_md = post['body_md']
|
42
|
-
|
43
|
-
name = post['name']
|
44
|
-
|
45
|
-
number = post['number']
|
46
|
-
|
47
|
-
body_md.scan(/[[(.+?)]]/){|(ref)|
|
48
|
-
|
49
|
-
puts "#{name}: #{ref} => #{name_tbl[ref]}"
|
50
|
-
|
51
|
-
|
33
|
+
ソースコード
|
52
|
-
|
53
|
-
foo: hoge => 67890
|
54
|
-
|
55
|
-
hoge: none =>
|
56
|
-
|
57
|
-
baz: hoge => 67890
|
58
|
-
|
59
|
-
baz: bar => 99999
|
60
|
-
|
61
|
-
=end
|
62
|
-
|
63
|
-
}
|
64
|
-
|
65
|
-
}
|
66
34
|
|
67
35
|
```
|
68
36
|
|
@@ -72,58 +40,12 @@
|
|
72
40
|
|
73
41
|
|
74
42
|
|
75
|
-
```ruby
|
76
|
-
|
77
|
-
post_all = [
|
78
|
-
|
79
|
-
{"number" => 12345, "name" => "foo", "body_md" => "[[hoge]]"},
|
80
|
-
|
81
|
-
{"number" => 67890, "name" => "hoge","body_md" => "[[none]]"},
|
82
|
-
|
83
|
-
{"number" => 99999, "name" => "bar", "body_md" => "foo"},
|
84
|
-
|
85
|
-
{"number" => 11111, "name" => "baz", "body_md" => "[[hoge]][[bar]]"}
|
86
|
-
|
87
|
-
]
|
88
|
-
|
89
|
-
name_tbl = post_all.map{|post| post.values_at('name', 'number') }.to_h
|
90
|
-
|
91
|
-
|
43
|
+
ここに問題に対して試したことを記載してください。
|
92
|
-
|
93
|
-
body_md = post['body_md']
|
94
|
-
|
95
|
-
name = post['name']
|
96
|
-
|
97
|
-
number = post['number']
|
98
|
-
|
99
|
-
body_md.scan(/[[(.+?)]]/){|(ref)|
|
100
|
-
|
101
|
-
body_md.gsub!(/[[(.+)]]/, '[\1](/posts/' + "#{$name_tbl[ref]})")
|
102
|
-
|
103
|
-
}
|
104
|
-
|
105
|
-
}
|
106
|
-
|
107
|
-
```
|
108
44
|
|
109
45
|
|
110
46
|
|
111
|
-
###
|
47
|
+
### 補足情報(FW/ツールのバージョンなど)
|
112
48
|
|
113
|
-
```ruby
|
114
49
|
|
115
|
-
undefined method `[]' for nil:NilClass (NoMethodError)
|
116
50
|
|
117
|
-
|
51
|
+
ここにより詳細な情報を記載してください。
|
118
|
-
|
119
|
-
```
|
120
|
-
|
121
|
-
### 試したこと
|
122
|
-
|
123
|
-
```ruby
|
124
|
-
|
125
|
-
new_body_md = "[" + "#{ref}" + "]" + "/posts/#{name_tbl[ref]}"
|
126
|
-
|
127
|
-
#希望の形をとりあえず出力した
|
128
|
-
|
129
|
-
```
|
2
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
その番号に合致する文章(body_md)を
|
14
14
|
|
15
|
-
/posts/(number)の形に置換したいです
|
15
|
+
[#{name}]/posts/(number)の形に置換したいです
|
16
16
|
|
17
17
|
|
18
18
|
|
1
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -72,10 +72,6 @@
|
|
72
72
|
|
73
73
|
|
74
74
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
75
|
```ruby
|
80
76
|
|
81
77
|
post_all = [
|
@@ -109,3 +105,25 @@
|
|
109
105
|
}
|
110
106
|
|
111
107
|
```
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
### エラー
|
112
|
+
|
113
|
+
```ruby
|
114
|
+
|
115
|
+
undefined method `[]' for nil:NilClass (NoMethodError)
|
116
|
+
|
117
|
+
#body_mdの内容が更新できていない
|
118
|
+
|
119
|
+
```
|
120
|
+
|
121
|
+
### 試したこと
|
122
|
+
|
123
|
+
```ruby
|
124
|
+
|
125
|
+
new_body_md = "[" + "#{ref}" + "]" + "/posts/#{name_tbl[ref]}"
|
126
|
+
|
127
|
+
#希望の形をとりあえず出力した
|
128
|
+
|
129
|
+
```
|