こんにちは、デジタル事業本部の藤田です。
正規表現で東京23区の区部名を検索する方法を考えてみました。InDesign ストーリーテキスト内の「○●区」を指定する正規表現スタイル作成が目的です。
目次
● 例文
東京都で人口が一番多いのは世田谷区です。次に多いのが練馬区。3位は23区で一番大きな面積を持つ大田区。以下、足立区や江戸川区など。下位は、やはり面積が約10-11平方キロメートルと小さい台東区や荒川区でした。また、区の15%が皇居敷地だったり、ビジネス施設の多い千代田区は住人も少ないようです。人口密度は豊島区が1位です。2位の中野区、3位の荒川区ともに区の面積が小さいため人口密度が高くなっています。人口の多かった世田谷区、練馬区、大田区、足立区といった地域は、面積も大きいので人口密度は低め。特に大田区は他の人口の多い区と比べて、かなり人口密度は低いようです。
この例文のように、東京23区の区部名を指定できるようにしてみます。
● 東京23区一覧
千代田区 | 墨田区 | 渋谷区 | 板橋区 |
中央区 | 江東区 | 中野区 | 練馬区 |
港区 | 品川区 | 杉並区 | 足立区 |
新宿区 | 目黒区 | 豊島区 | 葛飾区 |
文京区 | 大田区 | 北区 | 江戸川区 |
台東区 | 世田谷区 | 荒川区 |
● 共通の区部名をつなげてみる
・台東区と江東区
台東 と 江東、どちらも同じ文字数(2文字)で後ろに 東 がつきます。こういう場合は共通以外の文字を角括弧 […] でくくることで 台 または 江 にマッチする1文字が組み立てられます。
・中央区と中野区
中央 と 中野、どちらも同じ文字数(2文字)で前に 中 がつきます。こういう場合は共通以外の文字を角括弧 […] でくくることで 央 または 野 にマッチする1文字が組み立てられます。
・世田谷区と渋谷区
世田谷 と 渋谷 で文字数が違います(3文字と2文字)が、どちらも後ろに 谷 がつきます。こういう場合は共通以外の文字を丸括弧 (…) でくくりグループ化し、それぞれの単語を縦棒 | で区切ることでマッチする文字列が組み立てられます。
・品川区と荒川区と江戸川区
品川 と 荒川、どちらも同じ文字数(2文字)で後ろに 川 がつきます。こういう場合は共通以外の文字を角括弧 […] でくくることで 品 または 荒 にマッチする1文字が組み立てられます。
さらに、江戸川 は 品川・荒川 とは文字数が違います(3文字と2文字)が後ろに 川 がつきます。こういう場合は共通以外の文字を丸括弧 (…) でくくりグループ化し、それぞれの単語を縦棒 | で区切ることでマッチする文字列が組み立てられます。
・墨田区と大田区と千代田区
墨田 と 大田、どちらも同じ文字数(2文字)で後ろに 田 がつきます。こういう場合は共通以外の文字を角括弧 […] でくくることで 墨 または 大 にマッチする1文字が組み立てられます。
さらに、千代田 は 墨田・大田 とは文字数が違います(3文字と2文字)が後ろに 田 がつきます。こういう場合は共通以外の文字を丸括弧 (…) でくくりグループ化し、それぞれの単語を縦棒 | で区切ることでマッチする文字列が組み立てられます。
・その他
それ以外は共通する文字はありません。こういう場合は丸括弧 (…) でくくりグループ化し、それぞれの単語を縦棒 | で区切ることでマッチする文字列が組み立てられます。
● すべてを結合
上記の単語すべてを丸括弧 (…) でくくりグループ化して縦棒 | で区切ることでマッチする文字列が組み立てられます。
これで東京23区を検索できる正規表現が完成しました!
実際に使用するかどうかはさておき、正規表現を考える時はこういった手順で組み合わせていきます。また 江戸川区・江東区 も 江 が共通していますがそれぞれ 川 や 東 が共通しているのでそちらを優先しました。世田谷 も 田 がありますが然りです。ちなみに、東京都以外にも存在する区部名(北区、港区、中央区など)も当然ながらマッチしてしまいます。あしからず…。