正規表現に詳しい方にお尋ねします。

,XXX-XXXXYZZZZZZZZZ……,
Xは半角数字、Yは全角スペース、Zは全角文字・半角数字・半角ハイフンです。
(お察しの通り、これは郵便番号と住所です)
これを、
,XXX-XXXX,ZZZZZZZZZ……,
のように置換したいのですが、正規表現を用いて置換するにはどうすればよいですか?
使用するのは、EmEditorです。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/09/19 01:00:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:airplant No.1

回答回数220ベストアンサー獲得回数49

ポイント35pt

単純に途中の全角ブランクを取るのなら、下記でいけると思います。

検索パターン 「,([0-9]{3}-[0-9]{4}) 」(最後に全角スペースあります)

置換パターン 「,\1,」

もし、EmEditorが繰り返しを使えないなら

検索パターン 「,([0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]) 」 

置換パターン 「,\1,」

id:niwa-mikiho No.2

回答回数516ベストアンサー獲得回数40

ポイント35pt

置換で置換元を

,(\d{3}-\d{4}) (.*?),

とし、置換先を

,\1,\2,

とするといかがでしょうか?

ただし条件として、同じ行にほかに 「3桁数字-4桁数字」 のデータがないことが条件です。

id:hard No.3

回答回数32ベストアンサー獲得回数4

ポイント10pt

,XXX-XXXXYZZZZZZZZZ……,


という書式との事ですが、他に同じようにマッチする部分が出てこないように、

『XXX-XXXXYZZZZZZZZZ』の部分より前と後のコンマの数を数えます。

例えば、


ああ,いい,うう,ええ,おお,XXX-XXXXYZZZZZZZZZ,かか,きき


というような場合は、前に5個、後に2個コンマがあります。

このとき、

検索する文字列


^(([^,]*?,){5}\d{3}-\d{4}) ([^,]+?(,[^,]*?){2})$


置換後の文字列


\1,\3


とすれば、ご要望の通り置換できると思います。

数字の52の部分は、実際のファイルと見比べて変更してください。

ただし、サクラエディタでの動作確認しかしておらず、

EmEditorでは確認していません。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません