HAKADORI その他

正規表現で東京23区を検索

2019.10.31 木

正規表現で東京23区を検索

こんにちは、CMB室の藤田です。

正規表現で東京23区の区部名を検索する方法を考えてみました。InDesign ストーリーテキスト内の「○●区」を指定する正規表現スタイル作成が目的です。

● 例文

東京都で人口が一番多いのは世田谷区です。次に多いのが練馬区。3位は23区で一番大きな面積を持つ大田区。以下、足立区江戸川区など。下位は、やはり面積が約10-11平方キロメートルと小さい台東区荒川区でした。また、区の15%が皇居敷地だったり、ビジネス施設の多い千代田区は住人も少ないようです。人口密度は豊島区が1位です。2位の中野区、3位の荒川区ともに区の面積が小さいため人口密度が高くなっています。人口の多かった世田谷区練馬区大田区足立区といった地域は、面積も大きいので人口密度は低め。特に大田区は他の人口の多い区と比べて、かなり人口密度は低いようです。

この例文のように、東京23区の区部名を指定できるようにしてみます。

● 東京23区一覧

東京23区

千代田区 墨田区 渋谷区 板橋区
中央区 江東区 中野区 練馬区
港区 品川区 杉並区 足立区
新宿区 目黒区 豊島区 葛飾区
文京区 大田区 北区 江戸川区
台東区 世田谷区 荒川区

● 共通の区部名をつなげてみる

たいとう区とこうとう

[台江]東
、どちらも同じ文字数(2文字)で後ろに  がつきます。こういう場合は共通以外の文字を角括弧 […] でくくることで または にマッチする1文字が組み立てられます。

ちゅうおう区となか

中[央野]
、どちらも同じ文字数(2文字)で前に がつきます。こういう場合は共通以外の文字を角括弧 […] でくくることで または にマッチする1文字が組み立てられます。

がや区としぶ

(世田|渋)谷
世田 で文字数が違います(3文字と2文字)が、どちらも後ろに がつきます。こういう場合は共通以外の文字を丸括弧 (…) でくくりグループ化し、それぞれの単語を縦棒 | で区切ることでマッチする文字列が組み立てられます。

しながわ区とあらかわ区とがわ

([品荒]|江戸)川
、どちらも同じ文字数(2文字)で後ろに がつきます。こういう場合は共通以外の文字を角括弧 […] でくくることで または にマッチする1文字が組み立てられます。

さらに、江戸・荒 とは文字数が違います(3文字と2文字)が後ろに がつきます。こういう場合は共通以外の文字を丸括弧 (…) でくくりグループ化し、それぞれの単語を縦棒 | で区切ることでマッチする文字列が組み立てられます。

すみ区とおお区と

([墨大]|千代)田
、どちらも同じ文字数(2文字)で後ろに がつきます。こういう場合は共通以外の文字を角括弧 […] でくくることで または にマッチする1文字が組み立てられます。

さらに、千代・大 とは文字数が違います(3文字と2文字)が後ろに がつきます。こういう場合は共通以外の文字を丸括弧 (…) でくくりグループ化し、それぞれの単語を縦棒 | で区切ることでマッチする文字列が組み立てられます。

・その他

(港|新宿|文京|目黒|杉並|豊島|北|板橋|練馬|足立|葛飾)
それ以外は共通する文字はありません。こういう場合は丸括弧 (…) でくくりグループ化し、それぞれの単語を縦棒 | で区切ることでマッチする文字列が組み立てられます。

● すべてを結合

上記の単語すべてを丸括弧 (…) でくくりグループ化して縦棒 | で区切ることでマッチする文字列が組み立てられます。

これで東京23区を検索できる正規表現が完成しました!

InDesign の正規表現スタイルに設定したところ

InDesign の正規表現スタイルに設定したところ

 

実際に使用するかどうかはさておき、正規表現を考える時はこういった手順で組み合わせていきます。また 戸川区・東区 が共通していますがそれぞれ が共通しているのでそちらを優先しました。 がありますが然りです。ちなみに、東京都以外にも存在する区部名(北区港区中央区など)も当然ながらマッチしてしまいます。あしからず…。

-HAKADORI, その他
-, ,