質問: @test.gsub(/[^ -~。-゚]/, \ + /[^ -~。-゚]/) ``` 現時点では、条件分けをしていく前段階の「大文字の前に半角スペースをつくる」という処理だけで、つまづいている状態です。 もしよろしければ、ご教示頂けますと幸いです。よろしくお願いいたします。
回答: evalのあとに`map`で各要素に`gsub`を使いました。 `gsub`の正規表現では先読みと後読みを使っています。 小文字、大文字の順序になっているところにスペースを入れてます。 ``` p eval(@test).map { |s| s.gsub(/(?<=[a-z])(?=[A-Z])/, " ") } # => ["Japan", "AIBO", "Haneda Airport", "Artificial Intelligence"] ``` 別の`gsub`の使い方として、キャプチャを使う方がわかりやすいかもしれません。 ``` p eval(@test).map { |s| s.gsub(/([a-z])([A-Z])/, '\1 \2') } # => ["Japan", "AIBO", "Haneda Airport", "Artificial Intelligence"] ```