[都道府県][市区町村]
を、
[都道府県],[市区町村]
のように置換したいと思います。
例えば、
東京都千代田区 → 東京都,千代田区
北海道札幌市 → 北海道,札幌市
沖縄県那覇市 → 沖縄県,那覇市
のようにです。
置換元と置換先の正規表現はどのようになるでしょうか。
使用するのは、EmEditorです。
EmEditorの正規表現はよく知りませんが、
(.+[都道府県])(.+) という正規表現にマッチさせて
\1,\2 に置換すればよいのではないでしょうか?
当方、サクラエディタ&秀丸エディタを使っていますが、正規表現の仕様にそこまで大きな違いはないと思い、回答致します。
▼検索文字列
([都道府県])
▼置換文字列
\1,
以上でどうでしょうか。
ダメだったときはctrl-Zで勘弁していただけると幸いです。
これですと、例えば「甲府」の後にも半角コンマが入ってしまうのです。
愚直なようですが、次のようにするのが結局は一番いいように思います。
置換メニューにて
検索する文字列(I):
(北海道|青森県|岩手県|宮城県|秋田県|山形県|福島県|茨城県|栃木県|群馬県|埼玉県|千葉県|東京都|神奈川県|新潟県|富山県|石川県|福井県|山梨県|長野県|岐阜県|静岡県|愛知県|三重県|滋賀県|京都府|大阪府|兵庫県|奈良県|和歌山県|鳥取県|島根県|岡山県|広島県|山口県|徳島県|香川県|愛媛県|高知県|福岡県|佐賀県|長崎県|熊本県|大分県|宮崎県|鹿児島県|沖縄県)
置換後の文字列(P):
\1,
[✔]正規表現を使用する(X)
都 道 府 県 のいずれかの文字を含む市町村名は、この四文字いずれについても存在していますので、"[都道府県]"という正規表現だけで区切りを判断しようというアプローチは、例外をいくつか考えなければならないため、あまり筋がよいとは思えないからです。日本の現在の都道府県名に限るのであれば、たかだか47個ですから、結局は列挙したほうがはやいのではないかと考える次第です。
なお、上記の正規表現の、動作確認に使ったデータを添えておきます。(「現在使われている」「市名」に限ってみても、都道府県を名称に含むものがいくつかあるとおわかり頂けると思います)
北海道札幌市
北海道北広島市
栃木県宇都宮市
埼玉県さいたま市
千葉県四街道市
東京都府中市
神奈川県茅ヶ崎市
山梨県甲府市
山梨県都留市
愛知県大府市
岐阜県山県市
奈良県大和高田市
大阪府枚方市
京都府京都市
京都府長岡京市
広島県尾道市
山口県防府市
宮崎県都城市
宮崎県西都市
鹿児島県いちき串木野市
沖縄県那覇市
すいませんでした! たしかにおっしゃるとおりですね。というわけで代替案を考えてみました。
もし、都道府県名の前がタブで区切られているのであれば(「\t東京都新宿区」といったような形ですね)、
▼検索文字列
(?>=\t)(.{2,3}[都道府県])
とすると今度は「甲府市」のあとに「,」が入ることはないと思います。もし、タブではなくカンマ区切りでしたら(「,東京都新宿区」という形です)、「\t」は「,」に替えていただくとよいです。
都道府県名がエディタの行頭にくるのであれば、
▼検索文字列
^(.{2,3}[都道府県])
でいけるかと思います。
ちなみに置換文字列は、どちらも先ほどの回答と同じ「\1-」で大丈夫です。
どのような条件下で置換を行われるかがわかりませんので、勝手に特定の条件を想定して回答してしまいましたが、参考になりますでしょうか?
甲府の後ろなどにコンマがはいらないように、まず、最初に出てきた[都道府県]という指定を考えます。
行頭から都道府県名が始まるファイルなのですね。
行頭から[都道府県]以外の文字列が来てその後ろに[都道府県]が来たら、その後ろにコンマをつける。
^([^都道府県]+[都道府県])
↓
\1,
とまず考えます。
しかし、最初に出てきた[都道府県]という文字で問題になるのが、「京都府」です。
これを避けるために、
^([^都道府県]+[都道府県])([^府])
↓
\1,\2
とでもして、「京都,府」を避けることは出来るでしょう。
(他にも方法がありますが、「○○県○都市」などの都の後ろにコンマをつけないためには、「後ろに府以外がくる都」という指定がよいかと思います。
しかし、次に「東京都府中市」も問題になります。それに、「京都府」の後ろにコンマをつける作業が残っています。
ですから、一度の置換ではなく、何度かに分けた置換というのが、間違いがなくて良いのではないかと思います。
四十七回置換する必要はないのですから、これでも省力になると思います。
そこで、私がするとすれば、
まず、
^([^道府県]+[道府県])
↓
\1,
で、東京都以外を置換。これで「京都府」も「京都府,」になるので、東京都府中市とは区別が可能です。
次に、
^東京都
↓
東京都,
で、東京都の後ろにコンマ。
もし、京都に東京都(ひがし京都)などという地名があっても大丈夫なように、一応、「行頭の」という指定をしておきます。
これですと、例えば「甲府」の後にも半角コンマが入ってしまうのです。