,XXX-XXXXYZZZZZZZZZ……,
Xは半角数字、Yは全角スペース、Zは全角文字・半角数字・半角ハイフンです。
(お察しの通り、これは郵便番号と住所です)
これを、
,XXX-XXXX,ZZZZZZZZZ……,
のように置換したいのですが、正規表現を用いて置換するにはどうすればよいですか?
使用するのは、EmEditorです。
単純に途中の全角ブランクを取るのなら、下記でいけると思います。
検索パターン 「,([0-9]{3}-[0-9]{4}) 」(最後に全角スペースあります)
置換パターン 「,\1,」
もし、EmEditorが繰り返しを使えないなら
検索パターン 「,([0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]) 」
置換パターン 「,\1,」
置換で置換元を
,(\d{3}-\d{4}) (.*?),
とし、置換先を
,\1,\2,
とするといかがでしょうか?
ただし条件として、同じ行にほかに 「3桁数字-4桁数字」 のデータがないことが条件です。
,XXX-XXXXYZZZZZZZZZ……,
という書式との事ですが、他に同じようにマッチする部分が出てこないように、
『XXX-XXXXYZZZZZZZZZ』の部分より前と後のコンマの数を数えます。
例えば、
ああ,いい,うう,ええ,おお,XXX-XXXXYZZZZZZZZZ,かか,きき
というような場合は、前に5個、後に2個コンマがあります。
このとき、
検索する文字列
^(([^,]*?,){5}\d{3}-\d{4}) ([^,]+?(,[^,]*?){2})$
置換後の文字列
\1,\3
とすれば、ご要望の通り置換できると思います。
数字の5と2の部分は、実際のファイルと見比べて変更してください。
ただし、サクラエディタでの動作確認しかしておらず、
EmEditorでは確認していません。
コメント(1件)