• ベストアンサー

置換演算子を使うと空白が入ってしまう

$test = abcdef; $test =~ s/abc//g; 上記の様に置換演算子を使って文字列の削除を行うと、 「 def」の様に、削除した文字列に半角空白が入ってしまいます。 1回や2回ならよいのですが、何回も処理を行うと、 最終的に大量の空白が挿入されてしまい、大変困っています。 なんとか削除した部分に空白を挿入しない方法はないものでしょうか? 解決法がわかる方がいらっしゃいましたら、御教授頂きたく、 よろしくお願いします。

  • CGI
  • 回答数3
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

s|</?PRE>||g; でもだめですか? s/abc/ /g ; と空白が入ってるとかもないですよね?

palmist_1987
質問者

お礼

ご回答ありがとうございます。 >s|</?PRE>||g; >でもだめですか? だめでした。 >s/abc/ /g ; >と空白が入ってるとかもないですよね? 確認しましたが、入っていませんでした。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

言語はPerlですかね? そうだとしても、いままでそんなの見たことないですが。 'abcdef' みたいな単純な文字列ではなく、日本語で(しかもShift_JIS)となると、思いあたるものはありますが。

palmist_1987
質問者

補足

説明不足すいませんでした。 言語はPerlです。 確かに文字列自体はShift_JISの日本語を使用していますが、 置換したい部分は、「<PRE><P style=" ~ </PRE>」の 「<PRE>」と「</PRE>」を削除したいというものです。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

言語は何?

palmist_1987
質問者

補足

説明不足ですいません。 言語はPerlとなります。

関連するQ&A

  • マクロ(複数文字置換)についての質問です。

    現在、ExcelのA列に置換前の文字、B列に置換後の文字が入っているシート(シート名:"辞書")があります。 そのシートを辞書的役割で使用し別のシートの内容を置換したいと考えています(現在候補が1000文字程度あり、1つずつ置換をすることが難しいです) また、完全一致のみの置換、大文字とから小文字の置換も可能にし、件数も何件存在するかわかりません。 例:ABCをabcに変換したい場合、 ○ABC→abc ×ABCDEF→abcDEF のような感じです。 しかし、1つのセルの中に空白がある場合は置換可能とします。 例:ABC DEF→abc DEF このようなことは可能でしょうか? 何卒よろしくお願いいたします。

  • Vimで連続した空白をカンマ1つに置換したい

    Vimで連続した空白をカンマ1つに置換したい Vimでの置換がうまくいきません。 やりたいことは、 abc  def aaa dd を abc,def aaa,dd のようにしたいのです。 :%s/ */,/g :%s/\s*/,/g はうまくいきませんでした。 どうぞよろしくお願いします。

  • 位置指定の文字マッチングと同時に置換

    active perl v5.8を使用しています。 文字列のマッチングと置換について質問させてください。 たとえば"ABCDEF"という文字列があったとします。この文字列の3文字目の 後に"-"(スペースバー)を入れたいと思います。"ABC-DEF"のように。 この場合文字の種類ではなく、文字の位置から置換する対象を決めること にしたいのです。 正規表現をつかい3文字目を見つけ、3文字目 + "-"に置換すればよいと考えました。 my $seq = "ABCDEF"; $seq =~s/.{2}(.)/$1-/; #3番目の文字を(.)に入れて記憶 としたのですが、こうすると(C-DEF)のように初めのほうの文字が消えてしまいます。(スクリプトを見直してみると当然なのですが。。。) 後方参照という方法で $seq =~s/.\3/$1-/; というふうにもしたのですが、 "Reference to nonexistent group in regex"と\3をリファレンスとして とられてエラーになりました。 このような場合、どうすればヒットした文字のみを置換できるでしょうか。 非常に基本的なことなのですが、参考書やウェブではなかなか見つからな かったもので。。。。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • 一括置換をしたい

    ワード2003を使っています。 あるテキストデータの 「ABC」という文字列を「DEF」に置換したいんです。 同様に、 「GHI」を「JKL」に、 「MNO」を「PQR」に置換したいんです。 このように3つの文字列をボタンひとつで置換するにはどのようにすれば良いでしょうか? よろしくお願い致します。

  • wordのワイルドカードを使った置換について

    word2007でワイルドカードを使った置換をしたいと思いますが、うまくいきません。 数字の前の全角空白を半角空白にしたいと思います。、数字は全て半角です。 ○全角空白 △半角空白として 「第○1章」を「第△1章」と置換したいと思います。 置換で検索する文字列に 「○([0-9])」 置換後の文字列       「△\1」 と指定すると、置換後の結果は 「第1△章」 となります。 どうしてでしょうか。 どのように指定すればよいのかお教えください。 インストールしているアプリと関係があるということはあるでしょうか。そんなに複雑な使い方はしていませんが…… よろしくお願いいたします。

  • 秀丸エディタでの改行を含む複数行の置換について

    abc↓ 1行の文字列またはランダムな個数の改行を含むランダムな長さの英文文字列 def↓ を abc↓ あ↓ def↓ に置換したい場合、検索文字列はどのように指定すればいいのでしょうか? 「1行の文字列またはランダムな個数の改行を含むランダムな長さの英文文字列」は、 ee ff gg↓ の場合もあれば、 ee ff gg↓ hh iii jj↓ kk.↓ のような場合もありますが、これらすべてを全角1文字に置換したいのです。 また、この abc↓ 1行の文字列またはランダムな個数の改行を含むランダムな長さの英文文字列 def↓ は、他の文章の中に大量に埋まっていて、他の文章の体裁は崩せないため、 一括でとりあえずずべての改行を削除という方法は使えません。 お手数ですがどうぞよろしくお願い致します。

  • 標準文字商標に空白がある場合

    商標について質問があります。 標準文字商標に"ABC DEF"と空白が空いた状態で記載されている場合、"ABCDEF"は異なる商標となりますか? どうぞよろしくお願いいたします。

  • 空白セルを文字に置換するには

    空白セルに文字(例えば半角大文字A)を置換するにはどうしたらよいでしょうか。教えてください。

  • emacsで文字列の置換

    新しい職場で emacs を使い始めたのですが、文字列の置換をすると動作が変です。 ・abc → DEF という置換をすると、なぜか ・abc → DEFbc となってしまいます。 M-% M-x replace-string のどちらで置換しても同じです。 とても困っています!!どなたかアドバイスを!!!

  • 「""」内にある空白に「_」アンダーバーを挿入

    Excel2010での関数の質問です。 │ │ │ │ └─"ABC DE"  ←元データ │ │ │ │ └─"ABC_DE"  ←完成形 「""」内にある半角の空白に「_」アンダーバーを 関数を使って挿入させたいと考えています。 (「""」内の文字は一意ではありません。) =SUBSTITUTE(A11," ","_") を使用したら、全ての空白に「_」アンダーバーが 挿入されてしまい、 │__│__│__│__└─"ABC_DE" になってしまい、「|」の間にも「_」アンダーバーが 挿入されてしまいます。 (「|」と「|」の間は、半角空白が2つ入っています。) 括弧内の文字を抽出なら質問箱に沢山あるのを 確認していますが、括弧内の文字だけを変更は 見当たりませんでした。 「""」内にある半角の空白に「_」アンダーバーを 挿入させる関数をご教授下さい。 よろしくお願いします。

専門家に質問してみよう