web-dev-qa-db-ja.com

単語の検索/置換:ワイルドカードを使用して郵便番号にスペースを追加します

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のようなものになると思いましたが、機能しません

助けていただければ幸いです。

2
Mark

\ 1などは式を置き換えます。何かが式であることを指定するには、それを()で囲みます。だからあなたは必要です

([A-Z])([0-9])([A-Z])([0-9])([A-Z])([0-9])

次に

\1\2\3 \4\5\6

動作するはずです。表現できる数には限りがあると思います(おそらく9)

2
user181946

非常に簡単な方法:Excelの[テキストから列へ]関数を使用してから、CONCATENATE数式を使用して、中央のスペースで再結合します。式は= CONCATENATE(A1、 ""、B1)になります。

0
Karen927

sedのようなプログラムでできるように、(Microsoft Wordの[検索と置換]ダイアログで)完全なサブ正規表現の置換を行う方法が見つかりません。しかし、私はあなたの問題に対する多段階の解決策を見つけました。まず、データに表示されず、Wordの「検索と置換」で特別な文字を含まない文字列を特定します(例:「@」または「#」)。 (または、それらを使用しますが、エスケープします。)データに表示されない限り、「|」のように単一の文字にすることができます。 「|」を選択したと仮定します。さて、

  1. [A-Z][0-9][A-Z][0-9][A-Z][0-9]を検索し、^&|に置き換えます。これにより、不適合の各郵便番号に末尾に「|」のタグが付けられます。
  2. [0-9][A-Z][0-9]|を検索し、 ^&に置き換えます(先頭にスペースを入れます)。これにより、必要な場所にスペースが挿入されます。
  3. 次に、|のすべての出現箇所を検索し、何も置き換えません。

ワイルドカードモードを使用せずにこれを行うことができます。

  1. ^$^#^$^#^$^#^&|
  2. ^#^$^#| ^&(または^?^?^?| ^&)。
  3. |→何もありません。

^$[A-Za-z]と同等であるため、大文字と小文字が区別される場合は、「ワイルドカード」を使用する必要があると思います。

0
Scott