2016-10-10 12 views
0

出力txtファイルに同じ結果が返されて、サブメソッドが文字列に適用される問題があります。だから、事は、私は単一の文字列に次のコードを適用すると、私は\を得るnは、文字列の途中で大文字の前に:IO.writeを使用して出力ファイルにRuby subが適用されない

line3= "We were winning The Home Secretary played a 
important role." 
line3.sub(/(?<!^) *+(?=[A-Z])/, "\n") 

=> "We were winning\nThe Home Secretary played a\n important role." 

しかし、私は次のコードに私が取得txtファイルを適用した場合大文字の前に\ nはありません。

old= File.readlines("Modificado word.txt") 
second= old.join 

third= second.sub(/(?<!^) *+(?=[A-Z])/, "\n") 

new= IO.write("new.txt", third) 

私は問題があるかもしれないと思ったので、私は(確かに間違った方法で)エンコーディングの複数の方法を試してみたが、それらのいずれかが働きました。 gsubでも、どちらもうまくいかなかった。

+0

このような中間結果を印刷することでスクリプトをデバッグすることができます: 'third = second.sub /(?<!^)* +(?= [AZ ])/、 "\ n"); は3番目に ''サブが動作するかどうかを確認します。 –

答えて

0

私は解決策を持っていますが、理由はわかりませんが、txtファイルのエンコードの種類はreadlinesコマンドでも読み込めない形式になっているので、すべてのコンテンツを別のtxtファイルを最初から作成する必要があります:

関連する問題