質問するログイン新規登録

回答編集履歴

3

修正

2017/01/16 16:42

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -13,11 +13,11 @@
13
13
 
14
14
  puts data
15
15
  ```
16
- 上記によって、`/`の含まれない以下が表示されると思います。
16
+ 上記によって、`\`の含まれない以下が表示されると思います。
17
17
  ```
18
18
  <img src="http://stat.ameba.jp/user_images/20170107/15/isopp-blog/37/b4/j/xxxx.jpg?" border="0" width="380" height="437" alt="{61DA79DE-8661-4F18-9522-E5413D4B0137}"></a>
19
19
  ```
20
- これは、もともとのdataに(表示されるべき)文字としての `/` は含まれておらず、dataに代入している文字列内に現れる `/` は `"`(ダブルコーテーション)で囲まれた文字列の中で、HTMLの属性値を囲むための`"` を、文字列の終端を表す`"`ではなく、`"`という文字そのものとして扱うためのエスケープとして機能しているだけだからです。
20
+ これは、もともとのdataに(表示されるべき)文字としての `\` は含まれておらず、dataに代入している文字列内に現れる `\` は `"`(ダブルコーテーション)で囲まれた文字列の中で、HTMLの属性値を囲むための`"` を、文字列の終端を表す`"`ではなく、`"`という文字そのものとして扱うためのエスケープとして機能しているだけだからです。
21
21
 
22
22
  ご質問にある正規表現 ```data.gsub(/\\/) { '' }``` は問題ないです。それは以下によって分かります。
23
23
  以下は、data に代入する文字列リテラルをくくるクオートを、ダブルコーテーションからシングルコーテーションに変更して、ご質問にある正規表現で `\`を削除する前と後を表示させたものです。
@@ -35,7 +35,7 @@
35
35
  削除前: <img src=\"http://stat.ameba.jp/user_images/20170107/15/isopp-blog/37/b4/j/xxxx.jpg?\" border=\"0\" width=\"380\" height=\"437\" alt=\"{61DA79DE-8661-4F18-9522-E5413D4B0137}\"></a>
36
36
  削除後: <img src="http://stat.ameba.jp/user_images/20170107/15/isopp-blog/37/b4/j/xxxx.jpg?" border="0" width="380" height="437" alt="{61DA79DE-8661-4F18-9522-E5413D4B0137}"></a>
37
37
  ```
38
- 期待通り、`/`が削除されます。
38
+ 期待通り、`\`が削除されます。
39
39
  以下も参考にされるとよいかもしれません。
40
40
 
41
41
  [文字列リテラル](https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#string)

2

説明文の修正

2017/01/16 16:42

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -20,7 +20,7 @@
20
20
  これは、もともとのdataに(表示されるべき)文字としての `/` は含まれておらず、dataに代入している文字列内に現れる `/` は `"`(ダブルコーテーション)で囲まれた文字列の中で、HTMLの属性値を囲むための`"` を、文字列の終端を表す`"`ではなく、`"`という文字そのものとして扱うためのエスケープとして機能しているだけだからです。
21
21
 
22
22
  ご質問にある正規表現 ```data.gsub(/\\/) { '' }``` は問題ないです。それは以下によって分かります。
23
- 以下は、data に代入する文字列の右辺をくくるクオートを、ダブルコーテーションからシングルコーテーションに変更して、ご質問にある正規表現で `\`を削除する前と後を表示させたものです。
23
+ 以下は、data に代入する文字列リテラルをくくるクオートを、ダブルコーテーションからシングルコーテーションに変更して、ご質問にある正規表現で `\`を削除する前と後を表示させたものです。
24
24
 
25
25
  ```Ruby
26
26
  data = '<img src=\"http://stat.ameba.jp/user_images/20170107/15/isopp-blog/37/b4/j/xxxx.jpg?\" border=\"0\" width=\"380\" height=\"437\" alt=\"{61DA79DE-8661-4F18-9522-E5413D4B0137}\"></a>'

1

説明文の修正

2017/01/15 18:43

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -5,7 +5,7 @@
5
5
  ```ruby
6
6
  data = "<img src=\"http://stat.ameba.jp/user_images/20170107/15/isopp-blog/37/b4/j/xxxx.jpg?\" border=\"0\" width=\"380\" height=\"437\" alt=\"{61DA79DE-8661-4F18-9522-E5413D4B0137}\"></a>"
7
7
  ```
8
- によってdataに代入される文字列には、**そもそも削除対象とする(文字リテラルとしての)** `\`**は含まれていないから**です。
8
+ によってdataに代入される文字列には、**そもそも削除対象とする(表示される文字としての)** `\`**は含まれていないから**です。
9
9
 
10
10
  それは、以下のようにdataを表示してみると分かります。
11
11
  ```ruby