Wordの正規表現による置換と並び替え 実例サンプル解説集

スポンサーリンク

他のエディタの置換解説ページはこちら

MicrosoftのWordにおける置換(変換・置き換え)です。最も使用される文書作成ソフトにおける置換をマスターして、効率よい文書作成を実現しましょう。Wordは置換ができないと思われがちですが、Wordも文字の置き換えを行うことができます。

Wordの正規表現と置換(regex replace)をマスターすれば特定の文字の置き換え、消去、改行の追加、更には文字の入れ替えなどが簡単に行えるようになります。

スポンサーリンク

Wordでの置換の方法

置換は、ホーム画面から置換(右上に表示されています)をクリックして表示される以下のウィンドウで実行します。

置換のショートカットは ctrl を押しながら H です

オプションで、ワイルドカードを使用するにチェックを入れてください。【検索する文字列】の右入力欄に置換前の文字列、【置換後の文字列】の右入力欄に置換後の文字列を入力します。正規表現のチェックを入れてください。

検索・置換用メタ文字

? 任意の一文字 * 任意の0以上の文字 ワイルドカード
[~] ~のいずれか1文字 {n} 直前の文字をn個
[AB] AまたはB {n,} 直前の文字をn個以上
[0-9] 数字1文字 {n,m} 直前の文字をn~m個
[a-f] a,b,c,d,e,fの1文字 @ 直前の文字を1個以上
^13 改行    
^t タブ    

※^は日本語キーボードでバックスペース(BackSpace)の2つ左隣、^のことです。

検索のショートカットは ctrl を押しながら F です。メタ文字を用いて、色々と検索を試してみましょう。

( ~ ) ()を使って置換用の区切を行う \ 置換後文字は \1~ で呼び出します。$ではありません。

通常の置換

改行をカンマ(コンマ)に置換する(カンマがすでに存在している場合のCSV化)

改行コードを変換(置換)する方法について解説します。元々存在していたカンマを“,”とし、改行コードを変換したカンマは ,と表示することにします。必ず、事前にカンマを”,”にする2段階置換を実施してください。

置換前の文字列   目的とする文字列
43,279
532aa
43″,”279,532aa
1 置換前 ,
置換後 “,”
2 置換前 ^13
置換後 ,
  • 改行は ^13 です。
  •  ,が文中にある。この段階で^13置換をすると、置換後の文字に,が発生しデータ処理に不都合が生じる。2段階置換を行う。前段階として、,“,”に置換をしておく。こうしておくことで、ほとんどのアプリなどで,をCSVの区切り文字ではなく、文字列として判断できるようになる。ただし、場合によっては対応しない場合もあるため、そういった場合は別の文字列、例えばCCCなどに置換しておくとよい。
  • ^13を使って改行を検索し、,に置換する。
  • 事前にカンマを“,”とする二段階置換をすることで、後の作業での予期せぬトラブル発生を防ぐことができる。

置換前の文字を置換後にも使用する

桁表現のカンマ(コンマ)を削除する

置換前の文字列   目的とする文字列
1,200 1200
1 置換前 ([1-9]),([0-9][0-9][0-9])
置換後 \1\2
  •  ,を消すだけの置換では他の部分に影響が出てしまう可能性があるため、おすすめしません。
  • ()を使って置換前の文字を置換後の文字に使用する方法をとる。()によって文字列をグループ化していると考えます。以下は()と対応するイメージ。\0は、” “となってしまいます。\1からカウントです。
    ( \1 ) , ( \2 )
  • [1-9] は1~9の数値を意味します。0から999までの数は[0-9][0-9][0-9]と表現し、[0-999]という書き方はできません。テキストエディタは1文字単位で判断をするからです。
  • ( )は置換前の文字を置換後に使用する際に使用します。([1-9])[1-9]に対応する文字が\1([0-9][0-9][0-9])[0-9][0-9][0-9]に対応する文字が\2となります
    1 , 200
    ([1-9]) , ([0-9][0-9][0-9])
    \1
      \2

文章を入れ替える(1文字)

置換前の文字列   目的とする文字列
私にとってAはBです 私にとってBはAです
1 置換前 (私にとって)(?)(は)(?)(です)
置換後 \1\4\3\2\5
  •  ?は任意の1文字を意味します。それはCでもFでも数字でも対応します。
  • ()を使って置換前の文字を置換後の文字に使用する方法をとる。(上の方法と同じ)
    私にとって A B です
    (私にとって) (?) (は) (?) (です)
    \1 \2 \3 \4 \5
    \1 \4 \3 \2 \5
  • 以上から、順番は \1\4\3\2\5 となることがわかる。
  • 私にとって(?)は(?)です  → 私にとって$2は$1です でも構わない。
  • です」は置換判定になくても良いが、例えば「私にとってAはBではない」という文章(文字列)があった場合、その文字列も置換してしまうため、「です」を加えた。誤判定対策です。
  • 予期せぬ置換が起こることがあるため、置換対象が全て含まれる範囲内で、できる限り長い文字列にしたほうが良い。

文章を入れ替える(複数の文字列)

置換前の文字列   目的とする文字列
私にとってAAはBBBです 私にとってBBBはAAです
1 置換前 (私にとって)(?@)(は)(?@)(です)
置換後 \1\4\3\2\5
  •  ?の後ろに@を加えれば良い。加えることで()の間の全ての文字を対象にします。?@任意の一文字を1回以上という意味です。他は上記1文字入れ替えと同じです。
  • ()を使って置換前の文字を置換後の文字に使用する方法をとる。(上の方法と同じ)
    私にとって AA BBB です
    (私にとって) (?@) (は) (?@) (です)
    \1 \2 \3 \4 \5
    \1 \4 \3 \2 \5
  • 以上から、順番は \1\4\3\2\5 となることがわかる。
  • 私にとって(?@)は(?@)です  → 私にとって$2は$1です でも構わない。
  • です」は必ず加えなければなりません.+に文字数制限がないため、加えないと以下のようになってしまいます。
    私にとって AA BBB です
    (私にとって) (?@) (は) (?@)
    \1 \2 \3 \4

    つまり、(です)がない場合は結果として、 私にとってBBBですはAA となってしまいます。

  • 出来る限り文字を加えることは予期せぬ置換を防ぐためにも必要なことです。

その他

ピリオドの置換

置換前の文字列   目的とする文字列
45.232 45P232
1 置換前 .
置換後 P
  •  .の一文字、ピリオドはWordにおいては正規表現として使用されません。ですからそのままピリオドを使って置換しても問題ありません。 45.232 → P となる。
    45 . 232
      .  
    45 P 232

スペース(空白文字)

置換前の文字列   目的とする文字列
スペースが” “ スペースが “SPACE”
1 置換前 ” “
置換後 SPACE
  • 空白は” “、つまり検索欄にスペースを押して空白文字を入力します。

タブの置換

置換前の文字列   目的とする文字列
タブが”   “ タブが”TAB”
1 置換前 ^t
置換後
TAB
  • タブは^tとします。