正規表現の使いどころ(主にInDesign)

この記事内の目次

仕事で出てきた正規表現についてまとめてみました。

考え途中のところもありますし、もっとスマートな書き方があるかもしれません(コメント歓迎です!)。

半角のパーレン(丸括弧)を全角に変換したい

  • 検索文字列:\((.+?)\)
  • 置換文字列:($1)

  • パーレン(丸括弧)を文字列として扱うために\を付ける
  • 括弧内の文字列を (.+?) で指定
  • それを $1 で受ける(検索文字列の()内を受ける)
  • $1 を全角のパーレン(丸括弧)で囲む

欧文中、および、ソースコード内のパーレンまで対象にしないように要注意。

  • [検索形式]で対象となる段落スタイルを指定する
  • [検索形式]で[言語]を「日本語」に指定する

次のように2回の検索を行わずに、まとめてできるのがメリット。

  • (  →  (
  • )  →  )

起こしと閉じで混ざっている場合には、[((] のように対象にしたい括弧を[]で囲む。[]内では\は不要。

  • 検索文字列:[((](.+?)[))]
  • 置換文字列:($1)

ユースケース:「¥10,000」を「10,000円」に変更したい

  • 検索文字列:¥([0-9,]+)
  • 置換文字列:$1円

「ユーザビリティ」「ユーザセグメント」「ユーザー」以外で「ユーザ」が使われている箇所を「ユーザー」にしたい

ユーザーとユーザの揺れを正したい。しかし、「ユーザビリティ」と「ユーザーセグメント」は除く。

  • 検索文字列:ユーザ(?!ー|ビリティ|セグメント)
  • 置換文字列:ユーザー

InDesignでインライングラフィック(アンカー付きオブジェクト)の前後に自動的にアキを入れたい

  • 文字スタイルを作成:文字前のアキ量(文字後のアキ量)を「四分」などに設定

  • 段落スタイルの「正規表現スタイル」で「~a」に対して、文字スタイルを指定

日本語内ひらがな、カタカナ内に入りこんでいる半角スペースを検索して削除したい

原稿内に不要なスペースが紛れ込んでしまっていることがあります。

  • 検索文字列:(?&<=[ァ-ヶぁ-ん~K])\s(?=[ァ-ヶぁ-ん]~K)
  • 置換文字列:(空白)

連続するスペースは\s+で検索できるけれど、上記の中には入れられない…

長方形ツールを[長方形ツール]のように括弧付きに統一したい

「ツール]」のように]がついていない「ツール」という文字列を探したい

  • 検索文字列:ツール(?!])

縦中横の数字を等幅半角/三分として扱いたい

  1. [異体字]を「等幅半角/三分字形」に設定した文字スタイルを作成

  2. 段落スタイルにて正規表現スタイルを設定

    • [0-9]{2} →  等幅半角字形の文字スタイル
    • [0-9]{3}  →  等幅三分字形の文字スタイル

「10文字以上の文字列」に、「水平比率:90%」を指定した段落スタイルを適用したい

  • 検索文字列:.{10,}
  • 置換文字列:(空白)
  • 検索形式:対象にしたい段落スタイル
  • 置換形式:適用したい段落スタイル

「Adobe XD」はそのまま、「XD」のみ「Adobe XD」にしたい

  • 検索文字列:(?<!Adobe )XD
  • 置換文字列:Adobe XD

画像が入っているフレームだけが入っている行を探して、指定した段落スタイルを適用したい

  • 検索文字列:^~a\r
  • 置換文字列:(空白)

「行送り:自動」に設定すると、その行はフレームの高さになる。