Microsoft Word 2003の[検索と置換]ダイアログを使用して、住所のリストで、スペースが含まれていない郵便番号(カナダ)を検索したい。
M2N3X6
L4C2A9
K5G1S7
中央にスペースを置きます。
M2N 3X6
L4C 2A9
K5G 1S7
これは簡単なはずですが、「置換」の部分で少し問題があります。[検索]フィールドに[A-Z][0-9][A-Z][0-9][A-Z][0-9]
と入力していることがわかりましたが、[置換]ボックスに追加するにはどうすればよいですか。真ん中にスペースがあり、そこにある文字を保持していますか? \1\2\3 \4\5\6
のようなものになると思いましたが、機能しません
助けていただければ幸いです。
\ 1などは式を置き換えます。何かが式であることを指定するには、それを()で囲みます。だからあなたは必要です
([A-Z])([0-9])([A-Z])([0-9])([A-Z])([0-9])
次に
\1\2\3 \4\5\6
動作するはずです。表現できる数には限りがあると思います(おそらく9)
非常に簡単な方法:Excelの[テキストから列へ]関数を使用してから、CONCATENATE数式を使用して、中央のスペースで再結合します。式は= CONCATENATE(A1、 ""、B1)になります。
sed
のようなプログラムでできるように、(Microsoft Wordの[検索と置換]ダイアログで)完全なサブ正規表現の置換を行う方法が見つかりません。しかし、私はあなたの問題に対する多段階の解決策を見つけました。まず、データに表示されず、Wordの「検索と置換」で特別な文字を含まない文字列を特定します(例:「@
」または「#
」)。 (または、それらを使用しますが、エスケープします。)データに表示されない限り、「|
」のように単一の文字にすることができます。 「|
」を選択したと仮定します。さて、
[A-Z][0-9][A-Z][0-9][A-Z][0-9]
を検索し、^&|
に置き換えます。これにより、不適合の各郵便番号に末尾に「|
」のタグが付けられます。[0-9][A-Z][0-9]|
を検索し、 ^&
に置き換えます(先頭にスペースを入れます)。これにより、必要な場所にスペースが挿入されます。|
のすべての出現箇所を検索し、何も置き換えません。ワイルドカードモードを使用せずにこれを行うことができます。
^$^#^$^#^$^#
→^&|
。^#^$^#|
→ ^&
(または^?^?^?|
→ ^&
)。|
→何もありません。^$
は[A-Za-z]
と同等であるため、大文字と小文字が区別される場合は、「ワイルドカード」を使用する必要があると思います。