DTPab

DTPにまつわるあれこれ

InDesignの正規表現検索チートシート

なんか前回も検索についての記事だったんですけど、今回もたまたま検索に関する記事です。やっぱりよく使うInDesign正規表現検索。
で、InDesign正規表現検索は標準機能ながら強力で使いやすいのですが、いかんせん入力が面倒。あの検索窓、少し大きくしたい…と思っている方は僕以外にもきっといるはず^^;
以前は、たまーに使う正規表現を(いちいち記憶してられないので)チートシートっぽく取っておいて、それをコピペするなどして使ってました。

特殊な数字の検索チートシート

ということで、まずは僕が使っているInDesign正規表現チートシートの一部を上げます。以下はすべてUnicodeのコードポイントが付番されているものだけです。念のため書いておくと、ここに挙げている正規表現はすべて基底文字*1で、字形を変えられていてもマッチ自体はしてしまいます。そのあたりの細かいところまでは考えていないので、検索対象をよく吟味して使ってください。それと、置換に使う場合は、そのフォントがグリフを持っていないことがあるので注意してください。

  • 丸数字(①〜⑳):[\x{2460}-\x{2473}]
  • 黒丸数字(❶〜⓴):[\x{2776}-\x{277f}\x{24eb}-\x{24f4}](❶〜❿:\x{2776}-\x{277f}、⓫〜⓴:\x{24eb}-\x{24f4})
  • 括弧数字(⑴〜⒇):[\x{2474}-\x{2487}]
  • 時計数字(Ⅰ〜Ⅻ):[x{2160}-\x{216B}]

スクリプト

これらの正規表現を、正規表現検索パネルの検索文字列に追加するスクリプトがこれです。

app.findGrepPreferences.findWhat += "[\\x{2460}-\\x{2473}]"; //丸数字を検索窓に追加

すごく単純なスクリプトなのでワンライナーです。
既に入力済みの検索文字列の後ろに追加します。+=の部分を単純な代入演算子=にすれば書き換えです。要するに既に入力済みの文字列は無視され、スクリプトで指定した検索文字列になります。
文字列で検索条件に追加する場合は、コードの通り、バックスラッシュ\エスケープして\\とします*2
あとは好みですが、文字クラスを表すブラケット[ ]は外してもいいかもしれません。そうすると単純に「\x{2460}-\x{2473}」という文字列が追加されます。

こんな感じで、「たまに使うけど覚えてられない細かい検索文字列」みたいのはスクリプト化してしまうと簡単です。

*1:フォントがコードポイントと結びつけているグリフ。InDesignからエディタにコピペしたときに字形が変わるというか戻ってしまうことがありますが、この「戻る」基準のグリフという意味です。

*2:Windowsではバックスラッシュではなく円マークです。