• 締切済み

テキスト内の半角の [ を全角の [ に置換したい

windows環境でrubyを使っています テキスト内の '[' を、全角の '[' に置換したいのですがエラーがでてうまくいきません str.gsub(/\[/,'[') のように書きました

みんなの回答

  • notnot
  • ベストアンサー率47% (4855/10270)
回答No.1

プログラムとしては間違っていません。 文字コードの設定がおかしいのでしょうね。 Rubyのバージョンは?使っている文字コードは?エラーの内容は?

yori5070
質問者

お礼

ありがとうございます 質問のあと調べてみましたら、自力で解決にこぎつけました Ruby 1.9 では$KCODEが廃止されたので、先頭行に magic comment を書くことになったことで文字コードの設定が上手くいっていませんでした エラーも見ながら、Windows-31J に設定したところ上手く走りました (行頭に # coding: windows-31j を記述しました)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 半角全角区別しない場合の置換

    エクセルvbaで Cells.Replace What:=str置換前, Replacement:=str置換後, LookAt:=xlPart のように置換するときに 半角でも全角でも置換できるようにするにはどうすればいいですか? Replaceにカーソルを当てF1を押すと ライブラリでVBAとExcelのヘルプがありますが どちらを見ても、半角全角区別しない場合の書き方は書いてなかったため わかりませんでした。

  • 全角 「―」 は、どうやって半角 「-」 に置換するのですか???

    全角マイナス(―) を半角(-) に置換したいのですが うまくいきません。 $str ='ABCD―EFG'; $str =~ s/―/-/g; × 実行ストップ $str =~ s/\―/-/g; × 同じく $str =~ s/\―/\-/g; × 一文字ごとに - が入る 'ABCD-EFG' print してこう出てくれば 理想なのです。どうかよろしくお願いします。m(__)m

    • ベストアンサー
    • Perl
  • Ruby1.9で文字列の置換がうまくいきません。

    Ruby1.9で文字列の置換がうまくいきません。 以下の処理を実行すると、gsubのところでEncooding::CommpatibillityError とエラーが発生してうまく置換が出来ません。 何が原因でしょうか。あるいはもっと簡単な方法で置換する方法がありましたら ご教示のほどお願いいたします。 <仕様> 半角、全角に関係なく指定文字で置換する。 ※大文字部分は実際は全角文字です。 moji1 = 1abc56abcABC" moji2 = "abc" moji3 = "CBA" ⇒正しい置換結果は、"1CBA56CBAABC" #半角→全角 空白含 moji2 = moji2.tr('a-zA-Z0-9 - ', 'a-zA-Z0-9 - ') moji2 = NKF::nkf( '-SsXm0', moji2 ) data = moji1.gsub(moji2,moji3)       ↑↑↑ここで上記のエラー発生する。 どうか宜しくお願いいたします。

    • ベストアンサー
    • Ruby
  • 半角の「、」を全角に置換するには?

    あるテーブルのあるカラムに含まれている半角の「、」を一気に全角に置換する方法はありますでしょうか? よろしくお願いします。

  • 半角カタカナのみ全角にするには

    http://bekkoame.okwave.jp/qa8426331.html を参考にvbaコードを作っています。 "あああイイイ"(「イイイ」のみ半角カタカナ) を "あああイイイ" にしたいのですが、 Sub Macro01() Dim str置換前 As String '置換前の文字列 Dim str置換後 As String '置換後の文字列 Dim i As Integer str置換前 = "あああイイイ" str置換後 = str置換前 For i = 31850 To 31936 str置換後 = Replace(str置換後, StrConv(Chr(-i), vbNarrow), Chr(-i)) Next i MsgBox str置換前 MsgBox str置換後 End Sub を実行すると、 「あああ」が全角カタカナになり、「アアアイイイ」になってしまいます。 For i = 31850 To 31936 の部分に原因があるのかな、とは思いますが、 For i = 31850 To 31936の意味がよくわからないままコピペで使ってしまいました。 多分文字コードの数値だと思うのですが、どう変更すれば、ひらがなは除外されますか? よろしくお願いします。

  • インデザインCS4で半角を全角に直すとテキストが消える。

    本文中の半角「1」を検索と置換で全角「1」に置換すると添付画像のように変更箇所の部分以降のテキストが消えてしまいます。 なんで消えるのかがわからず苦戦しています。 ご存知の方いらっしゃいましたら教えていただければと思います。 画面の最終行以降も本来はテキストが流れているはずなのですが…。。

  • 全角を半角に2

    $clean_searchi = str_replace('、', ' ', $usersearch); $clean_search = str_replace(' ', ' ', $usersearch); $search_words = explode(' ', $clean_search); これだとエラーになります。要は全角スペースと全角句読点を半角スペースに変えてくれと指示したいのですが、どう変更したらよいでしょうか??

    • ベストアンサー
    • PHP
  • rubyのsub、gsubを使った文字列の置換について

    rubyによる文字列の置換でちょっと困っています。 例えば text = "ABCDABCEFG" という文字列があったとします。 その中の"ABC"の部分を"あいう"と置き換える場合 text = text.gsub(/ABC/, "あいう") で text = "あいうDあいうEFG" と置換できるはずです。 以上のような操作は問題ないのですが 置換対象と置換後の文字列を以下のように定義して subに放り込むということは出来ないのでしょうか。 置換前文字列:mae = "ABC" 置換後文字列:ato = "あいう" text = text.gsub(/mae/, ato) でもこれだと置換対象が"mae"という 文字列になってしまいますよね・・・ そもそもこのような機能はrubyにはないのでしょうか。 でも無いとかなり不便だと思いますが・・・ 現在何十万行のcsvファイルを数千行の置換文字列対応表 をつかっていっぺんに処理しようとしまして 以上のような方法をとろうとして詰まっています。 どなたか詳しい方ご教授よろしくお願いします。

  • [Ruby]外部ファイルの全角文字削除ができない原因を教えてください

    Rubyでの全角文字削除について質問です。 (環境:Windows XP,cygwin) コマンドライン引数で指定した外部ファイルを読み込んで全角文字を削除しようとすると、 全角文字が削除できないのですが、この原因がわかる方がいらしゃいましたら教えてください。 ・外部ファイル(Shift_JIS,改行=CR+LF) "7桁の| 郵便番号を| 入力して|,ください" ・Rubyスクリプト(cygwin上のため、EUC-JP,改行LF) #file.each_line do |line| # line.gsub!(/ /,'') # line.gsub!(/,/,'') # line.gsub!(/|/,'') #end 全角スペース、全角カンマ、全角パイプラインすべて削除できません。 半角文字は上記方法で削除できます。 しかし、スクリプト中に以下のような記述をすると、 #text = "7桁の 郵便番号を 入力して,ください" #print text.gsub(/ |,/,'') 「7桁の郵便番号を入力してください」と全角文字が削除されて表示されます。 教えてください。 よろしくお願いします。

  • エクセルで全角~半角の相互への置換方法について

    エクセルの文字列の置換ですが、 全角文字から半角文字への置換。 また、その逆に半角から全角への置換。 方法があれば教えてください!