質問: ### 前提・実現したいこと 日本語の演算子が含まれる文字列をコードの演算子に変換し、計算が実行されるようにしたいです。 また、@arrの要素の先頭に""が含まれている理由が知りたいです。 ### 発生している問題・エラーメッセージ エラーはありませんが、@arrの要素の先頭に""が含まれています ### 該当のソースコード Ruby class Calcuration def initialize(str) @str=str @arr=@str.split(/(\w+)/) end def display print @arr #=> ["", "1", "たす", "1"] end end sample=Calcuration.new("1たす1") sample.display ### 試したこと split以外に/(\d+)(\w+)(\d+)/などで切り分けて$1~$3などで置き換えようと思いましたが、どういうわけか、 こちらのやり方では、何も表示されませんでした。 ### 補足情報(言語/FW/ツール等のバージョンなど) ver2.33
回答: Rubyの正規表現では、`\w`は**英数字とアンダーバー**にヒットするようになっています(るりま)。 なので、`1たす1`を`split`すると、「」(区切り文字:1)「たす」(区切り文字:1)「」のように区切れますが、`split`のデフォルトでは「末尾の空文字列は削除する」ようになっていますので、得られたような結果になります。。